输入两个3位的正整数m,n,输出[m,n]区间内所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。
输入格式:
测试数据由多组,处理到文件尾。每组测试输入两个3位的正整数m,n(100≤m<n≤999)。
输出格式:
对于每组测试,若[m,n]区间内没有水仙花数则输出“none”(引号不必输出),否则逐行输出区间内所有的水仙花数,每行输出的格式具体参看输出样例。
输入样例:
100 150
100 200
输出样例:
none
153=1*1*1+5*5*5+3*3*3
代码如下:
#include<stdio.h>
int main()
{
int n,i,x=1,y=1;
scanf("%d",&n);
for(i=0;i<n-1;i++) x=x*10;
for(i=0;i<n;i++) y=y*10;
for(i=x;i<y;i++)
{
int t=i,sum=0;
while(t!=0)
{
int tt=1,m=n;
while(m--) tt=tt*(t%10);
sum=sum+tt;
t=t/10;
}
if(sum==i) printf("%d\n",i);
else printf("none");
}
return 0;
}
这段代码用于寻找给定3位数区间内的所有水仙花数。程序读取两个3位数m和n,然后遍历[m, n]区间,检查每个数是否为水仙花数。水仙花数是指各位数字立方和等于其本身的3位数。如果区间内没有水仙花数,则输出'none',否则逐行输出水仙花数及其立方和验证过程。
19万+

被折叠的 条评论
为什么被折叠?



