循环访问数字中的每个数字
我正在尝试创建一个程序,该程序将告诉它的数字是否是“快乐数字”。找到一个快乐的数字需要对数字中的每个数字进行平方,并将每个数字的平方结果相加。
在Python中,你可以使用这样的东西:
SQUARE[d] for d in str(n)
但是我找不到如何在Java中迭代数字中的每个数字。正如你所知道的,我是新手,在Java文档中找不到答案。
我正在尝试创建一个程序,该程序将告诉它的数字是否是“快乐数字”。找到一个快乐的数字需要对数字中的每个数字进行平方,并将每个数字的平方结果相加。
在Python中,你可以使用这样的东西:
SQUARE[d] for d in str(n)
但是我找不到如何在Java中迭代数字中的每个数字。正如你所知道的,我是新手,在Java文档中找不到答案。
可以使用模 10 运算获取最右边的数字,然后将该数字除以 10 得到下一个数字。
long addSquaresOfDigits(int number) {
long result = 0;
int tmp = 0;
while(number > 0) {
tmp = number % 10;
result += tmp * tmp;
number /= 10;
}
return result;
}
你也可以把它放在一个字符串中,把它变成一个char数组,然后循环访问它,做一些类似的事情。Math.pow(charArray[i] - '0', 2.0);
假设数字是一个整数,则开头为:
int num = 56;
String strNum = "" + num;
int strLength = strNum.length();
int sum = 0;
for (int i = 0; i < strLength; ++i) {
int digit = Integer.parseInt(strNum.charAt(i));
sum += (digit * digit);
}