在编译器和作业的网站提交上去都是对的,
估计你的作业网站有bug。另外,阿姆斯特朗数 并不一定是 立方和,而是“一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数”
程序代码:
#include <stdio.h> #include <stdbool.h> bool foo( unsigned n ) { unsigned sum = 0; for( unsigned t=n; t!=0; t/=10 ) sum += (t%10)*(t%10)*(t%10); return sum == n; } int main( void ) { for( unsigned i=2; i!=1000; ++i ) if( foo(i) ) printf( "%u\n", i ); }
输出
153
370
371
407
370
371
407