标题:求大神指点,题目如下,要把 1 到 10000 的自我数输出来,可是输出只剩下后 ...
取消只看楼主
目木
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-9-13
结帖率:0
已结贴  问题点数:2 回复次数:6 
求大神指点,题目如下,要把 1 到 10000 的自我数输出来,可是输出只剩下后面了
求大神指点,题目如下,要把1到10000的自我数输出来,可是输出只剩下后面了
1949年,印度数学家D.R.Kaprekar发现了一类叫做自我数(self number)的数。对于任一正整数n,定义d(n)为 n 加上 n 的每一位数字得到的总和。
例如,d(75) =75+7+5=87。
取任意正整数n作为出发点,你可以建立一个无穷的正整数序列 n, d(n), d(d(n)) ……
例如,如果你从33开始,下一个数字就是33+3+3=39,再下一个是39+3+9=51,再下一个是51+5+1=57,…。如此便产生一个整数数列:
33, 39, 51, 57, 69, 84, 96 ,111, 114 ,120 ,123, 129, 141,……
数字n被叫做整数d(n)的生成器。在如上的数列中,33是39的生成器,39是51的生成器,51是57的生成器,等等。
有些数字有多于一个生成器,如101有两个生成器,91和100。而一个没有生成器的数字则称作自我数(self number)。100以内的自我数共有13个:1,3,5,7,9,20,31,42, 53,64,75,86和97。


#include<stdio.h>
int main()
{
    long a[10000];
    long i;
    for(i=0;i<10000;i++)
        a[i]=0;

for(i=1;i<10000;i++)

    {if(i<=9)
a[i+i]=1;
if(i>9&&i<=99)
a[i+i/10+i%10]=1;
if(i>99&&i<=999)
a[i+i/100+i%100/10+i/100%10]=1;   
if(i>99&&i<=999)
a[i+i/100+i/10+i%10]=1;   
if(i>999&&i<=9999)
a[i+i/1000+i%1000/100+i%1000%100/10+i%10]=1;

   
}
for(i=1;i<10000;i++)
if(a[i]==0)
printf("%ld\n",i);
return 0;
}
搜索更多相关主题的帖子: 印度 正整数 数学家 出发点 number 
2014-09-13 16:17
目木
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-9-13
得分:0 
回复 2 楼 TonyDeng
那要怎么解决才能全部输出来
2014-09-13 17:13
目木
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-9-13
得分:0 
回复 4 楼 TonyDeng
没法停止
2014-09-13 17:23
目木
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-9-13
得分:0 
回复 6 楼 vvvcuu
求指点,怎么改算法比较好
2014-09-13 19:54
目木
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-9-13
得分:0 
有要求不允许有输入
2014-09-13 20:26
目木
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-9-13
得分:0 
VC里面显示
C:\Users\Administrator\Desktop\2.c(16) : error C2065: 'pause' : undeclared identifier
C:\Users\Administrator\Desktop\2.c(16) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'int '
C:\Users\Administrator\Desktop\2.c(16) : warning C4024: 'system' : different types for formal and actual parameter 1
执行 cl.exe 时出错.

2.obj - 1 error(s), 0 warning(s)
已然绝望
2014-09-13 20:56
目木
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-9-13
得分:0 
VC里面显示
C:\Users\Administrator\Desktop\2.c(16) : error C2065: 'pause' : undeclared identifier
C:\Users\Administrator\Desktop\2.c(16) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'int '
C:\Users\Administrator\Desktop\2.c(16) : warning C4024: 'system' : different types for formal and actual parameter 1
执行 cl.exe 时出错.

2.obj - 1 error(s), 0 warning(s)
已然绝望
2014-09-13 20:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-436038-1-1.html




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

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