水仙花数C语言代码优化
不足之处,请指正。
题目:求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=13+53+3^3,则153是一个“水仙花数”。
在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。
例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数:
153 = 1^3 + 5^3 + 3^3。
370 = 3^3 + 7^3 + 0^3。
371 = 3^3 + 7^3 + 1^3。
407 = 4^3 + 0^3 + 7^3。
1.很挫的代码
for (int i=100; i<=999; i++) { int t = pow(i%10,3) + pow(i/10%10,3) + pow(i/100,3); if (t == i) { printf("%d ",i); } } 12345678
我写的这段代码真的是很挫很挫,如果要求0~9999999之间的水仙花数呢?难道有多少位就写多少个pow嘛?
2.稍加修改后的代码
for (int i=0; i<=999; i++) { // 1.确定位数 int cnt = 1; int sum = 0; int temp = i; while(temp > 9) { cnt++; temp /= 10; } // 2.计算次方和 temp = i; while(temp) { sum += pow(temp%10,cnt); temp /= 10; } // 3.判断打印 if (sum == i) { printf("%d,",i); } }
123456789101112131415161718192021222324这下就思路清晰了很多,虽然稍微长了点。
3.反思
国庆开始啦,今天开始读《高质量C/C++编程指南》,今后code需要养成良好的习惯。
继续学习。
本文完,不足之处,请指正。
相关知识
水仙花数C语言代码优化
vs水仙花数c语言代码,求水仙花数c语言代码怎么写
C语言:输出所有的水仙花数
C语言编写水仙花数
水仙花数,C语言
C语言入门:判断水仙花数(100~999)
C语言植物大战僵尸源码分享。#c语言 #代码 #程序代码 #
打印水仙花数
水仙花数
打印“水仙花数”
网址: 水仙花数C语言代码优化 https://www.huajiangbk.com/newsview302091.html
上一篇: C++: 水仙花数 |
下一篇: vs水仙花数c语言代码,求水仙花 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039