首页 > 其他 > 详细

给出一串数字,要求倒置这一串数字,两种方法

时间:2019-12-04 22:51:24      阅读:120      评论:0      收藏:0      [点我收藏+]

我来丢人了,前两天写了一道这个面试题,直接转了字符串再通过数组倒置输出,看了一圈网上好像还挺非主流的哈哈

 1     public static void main(String[] args) {
 2         
 3         Scanner sc = new Scanner(System.in); /*扫描加键盘上的数*/
 4         System.out.print("请您输入一个数");/*提示从键盘上输入*/
 5         int a = sc.nextInt(); /*把键盘上输入的数赋给A*/
 6         
 7         
 8         String b=String.valueOf(a);//int转字符串        
 9         String[] bArr=b.split("");//分割字符串放进数组
10         for (int i = bArr.length; i>1; i--) {
11 //            System.out.println(i-1);
12             System.out.print(bArr[i-1]);
13 //            这里-1是因为数组的长度比索引小1,第一次i的大小会超出索引大小,例{1,2} i=2,最大索引为1
14             
15         }
16         
17     }

网上主流写法是循环取模后,把原数字通过除10,反正是int,尾数会被省略,但这个方法求1200这种尾数有零的,结果会无视0,运行结果为21。

 1     public static void main(String[] args) {
 2         int c=0,b=0;
 3         Scanner sc = new Scanner(System.in); /*扫描加键盘上的数*/
 4         System.out.print("请您输入一个数");/*提示从键盘上输入*/
 5         int a = sc.nextInt(); /*把键盘上输入的数赋给A*/
 6         /*
 7          String name = sc.nextLine(); 注:从键盘上输入字符串
 8           float salary = sc.nextFloat(); 注:从键盘上输float类型的数字
 9         */
10         if(a>=10)/*判断a是否大于或等于10*/
11             for(int i=0;a>=10;i++)/*一个循环,这个循环的次数由上一级的if语句来控制*/
12             {   
13                 c=a%10;/*如果a>=10就取a的余数*/
14                 b=b*10+c;/*第一次循环b=0*10+a=a 第二次循环b=a1*10+a2,倒着赋值*/
15                 a=a/10;/*取完a的最后一位数然后就直接除10*/
16                 System.out.println(c+" "+a+" "+b);/*测试ABC的值*/
17             }
18             b=a+b*10;/*当a>=10时b=0,所以b=a的个位数*/
19         System.out.print(b);/*倒叙输出a*/
20 
21     }

 

 

给出一串数字,要求倒置这一串数字,两种方法

原文:https://www.cnblogs.com/ByTwo/p/11986048.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!