我正在尝试确定数字是奇数还是偶数,输入的长度和输入中所有数字的总和。
这是我的尝试:
public static int statNum(int input) {
if(input % 2 == 0) {
System.out.println("The number is even");
} else {
System.out.println("The number is odd");
}
System.out.println(Integer.toString(input).length());
String number = String.valueOf(input);
char [] values = number.toCharArray();
int sum = 0;
for (int i = 0; i < values.length; i++) {
sum = sum + values[i];
}
System.out.println("The sum of this number is: " + sum);
return input;
}如果输入1,则和等于49,如果输入1234,则输入等于202。我做错了什么?
发布于 2014-01-18 23:08:53
您正在添加char值,即将char的ASCII值与总和相加,您应该在添加之前将它们解析为int
执行此操作
sum = sum + Integer.parseInt(Character.toString(values[i]));或者像@ZouZou建议的那样,可以使用
sum = sum + Character.getNumericValue(values[i]);发布于 2014-01-18 23:11:44
您需要减去ascii值'0',因此您只需添加大于零的数值,而不是添加char本身的值(这是其ascii字符值):
sum = sum + values[i] - '0';发布于 2014-01-19 00:40:24
下面是一个代码,用来计算数字的位数和和数字的长度:
int sum=0;
int length=0;
while(input!=0)
{
sum+=input%10;
input/=10;
length++;
}https://stackoverflow.com/questions/21205828
复制相似问题