蓝桥杯题目 1009: [编程入门]数字的处理与判断
题目描述
给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
输入
一个不大于5位的数字
输出
三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数
样例输入
12345
样例输出
5
1 2 3 4 5
54321
参考代码:
import java.util.Scanner;
public class Test7 {
public static void main(String[] args){
Scanner sc =new Scanner(System.in);
int a=sc.nextInt(); //a为输入的数字
int[] b=new int[5]; //新建一个大小为5的数组
int c=0,d,e; //定义c的初始值,将a的值赋值给d备用
d=a;
while(d>0){ //while循环找出输入的a是几位数并赋值给c
d=d/10;
c++;
}
System.out.println(c); //输出c(输入的数字是几位数)
for(int i=0;i<c;i++){ //利用for循环
int f=1; //定义一个f让每一遍的f都重新变为1,为下面的for循环提供便利
for(int j=0;j<c-i-1;j++){ //利用for循环计算出正好除以的10的几次方
f=10*f; //例如当a=12345时就除以10的4次方
}
e=a/f; //将e变为a/f
a=a%f; //将a进行除余,例如a=12345第一次除余后变为2345
b[i]=e; //将e赋值给b数组
if(i<c-1){
System.out.print(b[i]+" "); //之前的输入后面都加一个空格
}
else {
System.out.println(b[i]); //最后的输入不加空格
} //强调一点“print”输出时不会换行“println”输出时会换行
}
for(int v=0;v<b.length;v++){
if(b[b.length-v-1]>0){
System.out.print(b[b.length-v-1]); //倒着输出数组
}
}
}
}