搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求助:水仙花数
标题:
求助:水仙花数
只看楼主
signjing
等 级:
新手上路
帖 子:47
专家分:0
注 册:2006-3-24
第
21
楼
得分:0
对 20楼的比我的好
我过早的写了x=a/100;
y=a/10%10;
z=a%10;
此时a还没有范围
我的QQ:395812618
2006-04-11 15:43
adsl0231
等 级:
新手上路
帖 子:51
专家分:0
注 册:2006-3-29
第
22
楼
得分:0
#include <stdio.h>
void main()
{
int i,h,t,n;
i=100;
while(i>=100&&i<999)
{
h=i/100;\\用输入的数除以100得到百位上的值
t=i/10-h*10;\\用输入的值数楚以10然后再减去求出的百位上的数乘上10后的值
n=i-h*100-t*10;\\用输入的值减去百位乘上100和十位乘上10后的值
if(i==h*h*h+t*t*t+n*n*n)
printf("%d\n",i);
i++;
}
}
我做的while语句的算法 (绝对原创)
[此贴子已经被作者于2006-4-11 17:14:40编辑过]
2006-04-11 17:04
xiaohuli120
等 级:
新手上路
帖 子:106
专家分:0
注 册:2006-4-10
第
23
楼
得分:0
用while做:
main()
{
int i,j,k,n=100;
while(n<1000)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%4d\n",n);
n++;
}
}
或者:
main()
{
int i,j,k,n=100;
do
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%4d\n",n);
n++;
}
while(n<1000);
}
没有必要做强制类型转换,正整数相除,应该会简单的舍掉小数部分,
2006-04-11 21:11
andyss
等 级:
新手上路
帖 子:189
专家分:0
注 册:2006-4-8
第
24
楼
得分:0
算法上不难嘛!一个核心的思想就是求出每一位数.
幽幽黄桷兰----建四狼
2006-04-11 21:17
icy_fruit
等 级:
新手上路
帖 子:14
专家分:0
注 册:2006-2-22
第
25
楼
得分:0
也有好多都是我们学校的作业题,是不是考材有很多重复的地方?
2006-04-12 20:34
25
3/3页
1
2
3
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-56546-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.935187 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved