从1开始,以每一个标记为0的数为起点,产生序列,序列中的任何数的标记都置为1,最后找出标记为0的,即为所求数。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 1000001
int a[MAX];
int getSum(int n){
int sum=n;
while(n>0){
sum+=(n%10);
n/=10;
}
return sum;
}
void Init(){
int i,b;
for(i=1;i<MAX;i++) a[i]=0;
for(i=1;i<MAX;i++){
if(a[i]==0){
b=getSum(i);
while(b<MAX&&a[b]==0){
a[b]=1;
b=getSum(b);
}
}
}
}
int main(){
int i;
Init();
for(i=1;i<MAX;i++){
if(a[i]==0)printf("%d\n",i);
}
system("pause");
return 0;
}
本文介绍了一种通过计算整数及其各位数字之和的序列,使用C语言实现了一个程序,该程序能够找出所有未出现在由自身及后续数字的数字和构成的链中的整数。
382

被折叠的 条评论
为什么被折叠?



