我的数学很弱,因此我提出的问题可能与这里的大多数无关,但问题是为什么我们将阿姆斯特朗数除以10?我的意思是我们可以将数字除以10以外的任何其他数字。
答案 0 :(得分:1)
我认为问题是您不了解阿姆斯壮号码是什么。通过一次网络搜索:
一个三位数的阿姆斯特朗数是一个整数,以使该数位的立方之和等于该数字本身。例如,因为3 3 + 7 3 + 1 3 = 371,所以371是阿姆斯壮数。
因此,要检查任意随机数是否为Armstrong数:例如243。以书面形式计算2×2×2 + 4×4×4 + 3×3×3 = 8 + 16 + 27,这只有99,所以243不是阿姆斯特朗数。
现在,有两种直接的方法可以在计算机程序中获取数字的各个数字。首先,您可以将其转换为字符串。
std::string theString = to_string(243);
然后将每个数字转换回一个数字。这有点毛。
或者您可以这样做:
int sumOfCubes = 0;
for (int newNumber = myNumber; newNumber > 0; newNumber = newNumber / 10) {
// This is the modulus operator, or the remainder. 243 % 10 = 3.
// 24 % 10 = 4. and 2 % 10 = 2.
int digit = newNumber % 10;
sumOfCubes += digit*digit*digit;
}
if (sumOfCubes == myNumber) {
cout << myNumber << " is an Armstrong number." << endl;
}
循环中会发生什么:
完成。