如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数)。如407=4^3+0^3+7^3就是一个阿姆斯特朗数。试编程求1000内的所有3位数的阿姆斯特朗数。 **输出格式要求:"There are following Armstrong number smaller than 1000:\n" " %d " 程序运行示例如下: There are following Armstrong number smaller than 1000: 153 370 371 407
c语言代码如下
(此处用到一维数组,也有不用一维数组的方法见其他文章)
#include<stdio.h>
#include<math.h>
int main() {
int i,arr[3],g=0,s=0,b=0; //定义数组存入不同位数的值
printf("There are following Armstrong number smaller than 1000:\n");
for (i = 100; i < 1000; i++) {
arr[0] = i % 10;
g = pow(arr[0], 3);
arr[1] = (i / 10) % 10;
s = pow(arr[1], 3);
arr[2] = (i / 100) % 10;
b = pow(arr[2], 3);
if ((g + s + b) == i) {
printf(" %d ", i);
}
}
}
运行结果如图: