在pta基础题里有一样的题,用c写
题目
大柱哥哥想知道自己的幸运数是多少,于是他在纸上随便写了一个数。如果这个数字是个位数的话,大柱哥哥就把它当做自己的幸运数,如果它不是个位数,大柱哥哥就会把这个数各个位上的数字进行加和,直到它变成个位数。
代码
import java.util.Scanner;
public class main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int a[]=new int[10];
int c=0;
int x=scanner.nextInt();
if(x>=10){
for(;x>=10;) {
for(int i=0;i<(x+"").length();i++)
{
a[i]=x%10;
x=x/10;
c=c+a[i];
if(x<10) {
c=c+x;
}
}
x=c;
c=0;
}
System.out.println(x);
}
else
{
System.out.println(x);
}
}
}
注意两点
1,是怎么计算数字的长度,首先需要把数字转化为字符串,在利用x.length()计算程度长度,那么定义用户的输入的时候就得是Scanner scanner=new Scanner(System.in)和int x=scanner.nextInt()
特别注意计算长度的时候需要将x加上一个空字符串再.length()
2,每次将数字的每一位相加之后必须必须将c初始化为0!不然程序没有尽头