教科书上面的一道问题!

lovearcher 2009-04-30 01:00:36
3叶草数
1的3次方
5的3次方
3的3次方
相加等于153
1*1*1*5*5*5*3*3*3=153
请写一个程序/输出所有的3位数中这样的3叶草数
...全文
73 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liliangbao 2009-04-30
  • 打赏
  • 举报
回复
帮顶~
KevinHo 2009-04-30
  • 打赏
  • 举报
回复
通过取余或者除法分离出该三位数的个位、十位、百位的三个数,根据你的条件去写if和循环就行了
yingkundu 2009-04-30
  • 打赏
  • 举报
回复
#include <stdio.h>
2 main()
3 {
4 int g,s,b;
5 int sum=100;
6
7 while((sum<1000)&&(sum>99))
8 {
9 b=(int)sum/100;
10 s=(int)(sum%100)/10;
11 g=(sum%100)%10;
12
13 if(sum==((b*b*b)+(s*s*s)+(g*g*g)))
14 printf("object is %d\n",sum);
15 sum++;
16
17 }
18
19 return 0;
20 }
代码写的有点丑陋啊,但功能已经实现了。呵呵。
运行:
object is 153
object is 370
object is 371
object is 407
changhe325 2009-04-30
  • 打赏
  • 举报
回复
水仙花啊,百度一搜N个
magipan 2009-04-30
  • 打赏
  • 举报
回复
1*1*1+5*5*5+3*3*3=153
int a,b,c,i;
for(i=100;i<1000;i++)
{
a=i/100;
b=(i/10)%10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)
printf("%d\n",i);
}
majun01 2009-04-30
  • 打赏
  • 举报
回复
#include <stdio.h>

void doit(int st,int ed)
{
int a,b,c;
for(int i=st;i<ed;i++)
{
a=i/100;
b=i%100/10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
{
printf("%d\n",i);
}
}
}

void main()
{
doit(100,999);
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧