苏州市城乡建设档案馆网站,李守洪,眉山市住房城乡建设局网站,如何加入网站点击上方 蓝字关注我们大家好#xff0c;我是阿汤哥。看知乎上有朋友说还不明白怎么判断水仙花数#xff0c;今天我们就来看看这个问题。(PS#xff1a;“求1000以内的水仙花数”这道题阿汤哥记忆犹新。到现在还记得这是我大一上学期期末考试的编程题。)怎么求水仙花数… 点击上方 蓝字关注我们大家好我是阿汤哥。看知乎上有朋友说还不明白怎么判断水仙花数今天我们就来看看这个问题。(PS“求1000以内的水仙花数”这道题阿汤哥记忆犹新。到现在还记得这是我大一上学期期末考试的编程题。)怎么求水仙花数首先给出水仙花数定义。水仙花数 定义水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number)水仙花数是指一个 3 位数它的每个位上的数字的 3次幂之和等于它本身(例如1^3 5^3 3^3 153)。怎么判断一个三位整数是不是水仙花数呢我们根据它的定义来判断只要把个位数、十位数、百位数分别取出来然后做立方和判断立方和是否等于这个数本身。现在难点在于怎么编程求一个三位数的个位数、十位数、百位数我们这样来求假设一个三位数m132我们这样来求它的个十百位数求 个十百位数1、求它的个位数用这个数对10求余数个位数a132%10 22、求它的十位数把这个数先除以10商等于13商13再对10求余数得到十位数b13%1033、求它的百位数把这个数对100求商百位数c132/1001我们来C语言编程实现“求1000以内的水仙花数”下面是完整代码C语言代码/** * Author: 阿汤哥 * 微信公众号C语言修仙 * 功能 求1000以内的水仙花数 */# include # include /*** is_narcissus_number: 判断一个整数是不是素数** m: 待判断是不是水仙花数的三位数** 返回1:是素数返回0不是素数*/int is_narcissus_number(int m){ int a, b, c; c m % 10; //个位数 b (m/10) % 10; //十位数 a m / 100; //百位数 if (m (pow(a, 3) pow(b, 3) pow(c, 3))) return 1; else return 0;}int main(){ int m, a, b, c; //循环判断100~999每个数如果是水仙花数那么把它打印出来 for (int i 100; i 1000; i) { if (is_narcissus_number(i) 1) { printf(%d 是水仙花数;\n, i); } } return 0;}运行结果往期推荐好文★C语言编程工具的选择★i和i有什么区别★「建议收藏」C语言编程判断回文数★看完你就明白:什么情况下该用int main(int argc, char *argv[])而不是int main(void)★C语言编程打印一个圆形★福利50本C语言电子书免费送了★C语言编程求解1到1000之间所有的素数点个在看 你最好看