poj1316 self number 题目链接:http://poj.org/problem?id=1316
水
题目大意:定义一种规律,符合此种规律的数称为self number,输出一万以内所有非self number。
题目分析:给出一数判断是否为self number不易,所以想到从前往后顺着找,找到i所生成的self number,然后i++,用数组存下标记,输出所有未标记数。
以下是代码:
#include<stdio.h>
int main()
{
int n=1,a[10050]={0},i,tmp;
for(i=1;i<10000;i++)
{
n=tmp=i;
while(tmp)
{
n+=tmp%10;
tmp/=10;
}
a[n]=1;
}
for(i=1;i<10000;i++)
{
if(!a[i])printf("%d\n",i);
}
return 0;
}
本题核心算法:数的十进制右移