| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1333 人关注过本帖
标题:[求助]试求出所有“幸运数”的和
只看楼主 加入收藏
我是拉登
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2004-7-20
收藏
 问题点数:0 回复次数:6 
[求助]试求出所有“幸运数”的和

题目是这样子的:一个自然数各位数字之和与各位数字之积的和恰好等于这个自然数,我们称它为“幸运数”,试求出所有“幸运数”的和。(用WIN—TC)

#include"stdio.h" main() {int i2,i3,g ,sh,b,s=0; for(i2=10;i2<=99;i2++) {g=i2%10;sh=(i2-g)/10; if(g+sh+g*sh==i2) s=s+i2; printf("i2=%d,",i2); getch(); } for(i3=100;i3<=999;i3=i3+1) {g=i3%10;sh=(i3-g)/10%10;b=(i3-g-sh*10)/100; if(g+sh+b+g*sh*b==i3) s=s+i3; printf("i3=%d,",i3); getch(); } printf("/nthe sum is:%d.",s); getch(); }

不知在下哪里错了?请高手指教指教。

搜索更多相关主题的帖子: 幸运数 
2004-08-04 18:43
我是拉登
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2004-7-20
收藏
得分:0 

答案:

main() { int a,b,c,d,e,num; for(a=0;a<10;a++) for(b=0;b<10;b++) for(c=0;c<10;c++) for(d=0;d<10;d++) for(e=0;e<10;e++){ if((a+b+c+d+e)+((a?a:1)*(b?b:1)*(c?c:1)*(d?d:1)*(e?e:1))==(num=(a*10000+b*1000+c*100+d*10+e))) printf("The Nunber is %d\n",num); } getch(); }


2004-08-06 16:54
heiren
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-7-18
收藏
得分:0 

如果说只是需要输出1000以内的幸运数的话你的做法可行的

#include"stdio.h" main() {int i2,i3,g ,sh,b,s=0; for(i2=10;i2<=99;i2++) {g=i2%10;sh=(i2-g)/10; if(g+sh+g*sh==i2) s=s+i2; 第一错这里你这么书写的话,如果g+sh+g*sh==i2成立,执行就s=s+i2下面的就没有了 printf("i2=%d,",i2); 所以这里s=s+i2和printf("i2=%d,",i2); 应该用大括号给扩起来 getch(); } for(i3=100;i3<=999;i3=i3+1) {g=i3%10;sh=(i3-g)/10%10;b=(i3-g-sh*10)/100; if(g+sh+b+g*sh*b==i3) s=s+i3; 这里也 printf("i3=%d,",i3); getch(); } printf("/nthe sum is:%d.",s); getch(); }

还有提醒一下

好像 win_tc里面的getch();

只要写一句就够

我也刚刚学c不久

大家一起交流

2004-08-06 22:24
heiren
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-7-18
收藏
得分:0 

又仔细研究了一下

好像getch()

写多了有问题的

呵呵

初学者请多指教

2004-08-06 22:29
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
收藏
得分:0 

判断的函数

int fun(int n)

{ int i,s1=0,s2=1; //s1存放各位和,s2存放各位积

while((i=n%10)!=0)

{ s1+=i;

s2*=i;

n/=10;

}

if(s1==s2)return 1; //是幸运数返回1

return 0;

}


我的主页 http://www.
2004-08-07 08:56
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
收藏
得分:0 
哦,上面没考虑各位是0的情况,中间加个语句,if(i!=0)就可以了

我的主页 http://www.
2004-08-07 09:09
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
以下是引用jzh2004在2004-08-07 08:56:24的发言:

while((i=n%10)!=0)

妈妈的,难怪我老说我记得有一个更加好的算法,却老是找不到,原来是被你小子捡了


淘宝杜琨
2004-08-07 09:17
快速回复:[求助]试求出所有“幸运数”的和
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036820 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved