Algorithm 阿姆斯特朗数逻辑

Algorithm 阿姆斯特朗数逻辑,algorithm,math,decimal,Algorithm,Math,Decimal,我数学很差,所以我问的问题可能与这里的大多数人无关,但问题是为什么我们要用阿姆斯特朗数除以10?我的意思是我们可以把这个数字除以10以外的任何其他数字。我认为问题在于你不明白阿姆斯特朗数字是什么。从一个web搜索: 三位数的阿姆斯特朗数是一个整数,其位数的立方之和等于该数本身。例如,371是阿姆斯特朗数,因为33+73+13=371 所以,要检查任何随机数是否是阿姆斯特朗数:比如说243。把数字写下来,做2×2×2+4×4×4+3×3=8+16+27,也就是说只有99,所以243不是阿姆斯特朗数

我数学很差,所以我问的问题可能与这里的大多数人无关,但问题是为什么我们要用阿姆斯特朗数除以10?我的意思是我们可以把这个数字除以10以外的任何其他数字。

我认为问题在于你不明白阿姆斯特朗数字是什么。从一个web搜索:

三位数的阿姆斯特朗数是一个整数,其位数的立方之和等于该数本身。例如,371是阿姆斯特朗数,因为33+73+13=371

所以,要检查任何随机数是否是阿姆斯特朗数:比如说243。把数字写下来,做2×2×2+4×4×4+3×3=8+16+27,也就是说只有99,所以243不是阿姆斯特朗数

现在,有两种简单的方法可以在计算机程序中获取数字的各个数字。首先,可以将其转换为字符串

std::string theString=to_string(243);
然后将每个数字转换回一个数字。这有点恶心

或者您可以这样做:

int sumof立方体=0;
对于(int newNumber=myNumber;newNumber>0;newNumber=newNumber/10){
//这是模运算符,或余数。243%10=3。
//24%10=4,2%10=2。
整数位数=新编号%10;
立方体总和+=位数*位数*位数;
}
if(sumOfCubes==myNumber){

这是因为您正在尝试用十进制计算数字和。您看到的很可能是如何从数字中获取一个位数。虽然没有看到您的代码,但这只是一个猜测。