#include <stdio.h>
int main()
{
int a,b,c,n,i,j,k,d,e=1,w=1,q=1;
scanf("%d",&n);
d=n;
for(a=1;d>1;a*=10){
d--;
}
b=a*10;
for(c=a;c<b;c++){
i=c/100;
j=c/10%10;
k=c%10;
while(n>0){
e=e*i;
w=w*j;
q=q*k;
n--;
}
if(c==e+q+w)
{
printf("%d\n",c);}
}
return 0;
}
你的思路有点小问题,给你参考下
#include <stdio.h>
int main()
{
int start, end, i = 0, a, b, c, size = 0;
while (scanf("%d %d", &start, &end) == 2)
{
for (i = start; i <= end; i++)
{
a = i / 100;
b = i / 10 % 10;
c = i % 10;
//total = pow(c, 3) + pow(a, 3) + pow(b, 3);
if ((a*a*a + b*b*b + c*c*c) == i) //满足水仙花条件
{
if (size == 0) //size=0输出第一个水仙花数
{
printf("%d", i);
}
else //size++输出第二。。第n个水仙花数
{
printf(" %d", i);
}
size++; //个数++;
}
}
if (size == 0) //范围内个数为0,则说明没有满足条件的
{
printf("no");
}
printf("\n");
}
return 0;
}
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
前面的这段代码
if ((a*a*a + b*b*b + c*c*c) == i) //满足水仙花条件
{
if (size == 0) //size=0输出第一个水仙花数
{
printf("%d", i);
}
else //size++输出第二。。第n个水仙花数
{
printf(" %d", i);
}
size++; //个数++;
}
可以更改为一下代码:
if ((a*a*a + b*b*b + c*c*c) == i) //满足水仙花条件
{
printf("%d ", i);
size++; //个数++;
}