解题思路:
分成两步,先写判断水仙花数的子函数,然后遍历所有三位数。
(1)重点是如何求立方和,方法也很好理解,就是用while()语句,先模10取余,然后除10,重复三次得到三个余数,求立方和就行了。
(2)遍历直接用for()语句就行了。
注意事项:
为了代码健壮性,最好对传入的数是否为三位数做一下异常处理。
参考代码:
#include <iostream> #include <cmath> using namespace std; bool nccsNum(int num); //求水仙花数 int main() { for(int i = 100; i < 1000; i++) { if(nccsNum(i)) { cout << i << endl; } } return 0; } bool nccsNum(int num) { if(num < 100 || num > 999) { return -1; //异常处理,限定为三位数 } else { int res = 0; //立方和 int temp = num; //num后来归0了,需要先初始化一个副本,用于和res比较 while(num) { res += pow((num % 10), 3); num /= 10; } if(res == temp) { return 1; //是水仙花数 } else { return 0; //不是水仙花数 } } }
0.0分
1 人评分
点我有惊喜!你懂得!浏览:1437 |
C语言训练-邮票组合问题* (C语言代码)......浏览:689 |
C语言程序设计教程(第三版)课后习题3.7 (C++代码)浏览:1024 |
C语言训练-大、小写问题 (C语言代码)浏览:649 |
C语言训练-大、小写问题 (C语言代码)浏览:792 |
WU-输出九九乘法表 (C++代码)浏览:1853 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:350 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:606 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:639 |
汽水瓶 (C语言代码)浏览:579 |