你的程序先判断了n>0,那么当n=0时,将无法输出正确的答案,存在BUG,老师提供的程序没有此BUG
呵呵,当n=0时,sum=0,number=1,0也应该算作1位数
试试我这个
public class $ {
public static void main(String... _) {
int a = 1357924680;
String str = String.valueOf(a);
System.out.println("位数:" + str.length());
char[] ch = str.toCharArray();
int sum = 0;
for (int i = 0; i < ch.length; i++) {
sum += Integer.parseInt(String.valueOf(ch[i]));
}
System.out.println("各位数之和" + sum);
}
}
你要知道while和do while
while是先判断后执行,
do while是先执行后判断。
其实他们是可以互换的,最主要的是你第一次的初始条件的设置问题。
我越看越觉得两个答案都是错的.......
哎,楼上用String和char数组的也是我的想法..