请看下~~~一个三位数每个位上的数字立方之和等于这个数

冰凝 2011-04-26 09:36:59
这个这样写对吗?
#include <stdio.h>
#include <math.h>

void main()
{

int a,b,c,n;
printf("水仙数字");
for(a=1;a<9;a++)
for(b=0;b<9;b++)
for(c=0;c<9;c++)
if(a*a*a+b*b*b+c*c*c==100*a+10*b+c)
n=100*a+10*b+c;
printf("%d\n",n);


}
觉得太简单不过的,不要打击我啊
...全文
2472 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
Codefans_Fan 2011-05-04
  • 打赏
  • 举报
回复
有没有试过求个21位的
xiangjiazhi 2011-05-04
  • 打赏
  • 举报
回复
这是水仙花的例子。
冰凝 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 39 楼 wqs12ec056 的回复:]
#include <stdio.h>
#include <math.h>

void main()
{

int a,b,c,n;
printf("水仙数字");
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
if(a*a*a+b*b*b+c*c*c==100*a+10*b+c){
n=100*a……
[/Quote]
恩,谢谢!!
wqs12ec056 2011-05-04
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <math.h>

void main()
{

int a,b,c,n;
printf("水仙数字");
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
if(a*a*a+b*b*b+c*c*c==100*a+10*b+c){
n=100*a+10*b+c;
printf("%d\n",n);
}
}

应该这样写吧,要不然只会显示最后一个水仙数,或者干脆这样写

#include <stdio.h>
#include <math.h>
void main()
{
int a,b,c;
printf("水仙数字");
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
if(a*a*a+b*b*b+c*c*c==100*a+10*b+c)
Printf("%d\n",100*a+10*b+c);
}

今何在_天 2011-05-04
  • 打赏
  • 举报
回复
//一个三位数每个位上的数字立方之和等于这个数
static int GetConditionalNum(void)
{
int nCubeNumOfArray[10] =
{
0, 1, 8, 27, 64,
125, 216, 343, 512, 729
};

int nBitNum = 0;
int nTenNum = 0;
int nHundredNum = 0;
int nNum = 0;
int nResNum = 0;

printf("GetConditionalNum\n");
for(nHundredNum = 1; nHundredNum <= 9; nHundredNum++)
{
for(nTenNum = 0; nTenNum <= 9; nTenNum++)
{
for(nBitNum = 0; nBitNum <= 9; nBitNum++)
{
nNum = nCubeNumOfArray[nBitNum] +
nCubeNumOfArray[nTenNum] + n
nCubeNumOfArray[nHundredNum];
nResNum = nBitNum + nTenNum*10 + nHundredNum*100;
if(nResNum == nNum)
{
printf("%d\n", nNum);
}
}
}
}

return true;
}
vbscribt 2011-05-03
  • 打赏
  • 举报
回复
我用EXCEL的规划求解可以算出来,不需要编程
等于371
lihongverygood00 2011-05-03
  • 打赏
  • 举报
回复
能不能用另一种方法把这个算法写出来!
single_w 2011-05-02
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 shanmao 的回复:]

不得不说你的编码风格很成问题。这个如果是笔试题的话,直接看编码风格就si啦
[/Quote]
请说详细点,谢谢~我和她写的差不多,我是新手,别喷。说出来,我也好改啊,谢谢
shunjianyu 2011-05-02
  • 打赏
  • 举报
回复
因为a<10,所以a*a*a<100*a,所以b*b*b+c*c*c>10*b+c
所以当c==0和c==1时,只要考虑b>=4的情况就可以了吧?
single_w 2011-05-01
  • 打赏
  • 举报
回复
这个我觉得用穷举法蛮简单的,发上来一起探讨咯~
#include<stdio.h>
#include<math.h>
void main()
{
int a,b,c;
for(int i=100;i<999;i++)
{
a=i/100;
b=(i/10)%10;
c=i%10;
if(i==pow(a,3)+pow(b,3)+pow(c,3))
printf("%d\n",i);

}
}
g0tazu 2011-05-01
  • 打赏
  • 举报
回复
貌似这是大一时 C语言中的习题 求1000以内的水仙花数!额
remote_cc 2011-05-01
  • 打赏
  • 举报
回复
int cube[10];


main()
{
for (i = 0; i< 10; i++)
{
cube[i] = i*i*i;
}
.....
}

bool isArmstrong(int n)
{
....
//sum=sum+(int)pow((double)a,(double)b);
sum=sum+cube(a);

[Quote=引用 15 楼 pathuang68 的回复:]
C/C++ code

#include <stdio.h>
#include <math.h>
#include <time.h>

bool isArmstrong(int n)
{
int a = 0, b=0, sum=0, tmp;

tmp = n;
for(;tmp>0;)
{
a=tmp%10;
……
[/Quote]
myhope88 2011-04-28
  • 打赏
  • 举报
回复
水仙花数?
pallana 2011-04-28
  • 打赏
  • 举报
回复
为啥是void main()?
而且很多人都在用。
难道是写单片机程序?
冰凝 2011-04-28
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 utopiaaaa 的回复:]
楼主是个女的,回答正确不??给我分,多少都行
[/Quote]
我结贴很长时间了呀!
Utopiaaaa 2011-04-28
  • 打赏
  • 举报
回复
楼主是个女的,回答正确不??给我分,多少都行
cx08030072 2011-04-27
  • 打赏
  • 举报
回复
神马情况啊!!!这么一个小白问题居然上了首页???难道...
听雨楼Leeon 2011-04-27
  • 打赏
  • 举报
回复
lz这段代码和我大一的时候有得一拼。
alang512 2011-04-27
  • 打赏
  • 举报
回复
for(a=1;a<9;a++)
for(b=0;b<9;b++)
for(c=0;c<9;c++)
{
if(a*a*a+b*b*b+c*c*c==100*a+10*b+c)
{
n=100*a+10*b+c;
printf("%d\n",n);
}
}

楼主很粗心,漏掉了 两个括号。

shun_qizi_ran 2011-04-27
  • 打赏
  • 举报
回复

for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
{
n=100*a+10*b+c;
if(a*a*a+b*b*b+c*c*c==n) printf("%d \n",n);
}
加载更多回复(21)

69,371

社区成员

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

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