每日编程
题目:春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。
现在要求输出所有在m和n范围内的水仙花数。
输入
输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。
输出
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
如果给定的范围内不存在水仙花数,则输出no;
每个测试实例的输出占一行。
样例输入
100 120
300 380
样例输出
no
370 371
解答:
昨天忘了贴上来了……现在补上
1 #include <iostream> 2 using namespace std; 3 4 void shuiXH(int n1, int n2) { 5 bool flag = 1; 6 for (auto i = n1; i <= n2; i++) 7 { 8 int tmp = i, sum = 0; 9 while (tmp != 0) 10 { 11 sum += (tmp % 10)*(tmp % 10)*(tmp % 10); 12 tmp /= 10; 13 } 14 if (sum == i) 15 { 16 cout << i << " "; 17 flag = 0; 18 } 19 } 20 if (flag) cout << "no" << endl; 21 else cout << endl; 22 } 23 int main() { 24 25 int n1, n2; 26 while (cin >> n1 >> n2) 27 { 28 if (n1 > n2) 29 { 30 (cout << "no" << endl); 31 } 32 else 33 { 34 shuiXH(n1, n2); 35 } 36 } 37 }
转载于:.html
更多推荐
每日编程
发布评论