游客 Signup | Login
中文 | En

3639 - selfnumber

一个整数n,如果存在另一个整数i,i加上它各个数位上的数字刚好等于n, 就说n是selfnumber  例如n=51 i=39 

 39+3+9=51

你要做的很简单,输出1-x所有不是selfnumber的数。

x<=1000000  注意时限

Input

每一行输入x

Output

对应每一个x,每行输出一个selfnumber

Examples

Input

1
10

Output

1
1
3
5
7
9

Solution C

#include<stdio.h>
#include<time.h>
int main()
{
	int i,j,n,k,t,c,q;
//	freopen("t.out","w",stdout);
//	freopen("t.in","r",stdin);
	while(scanf("%d",&n)==1)
	{
	for(i=1;i<=n;i++)
	{
		t=i;q=0;c=0;
		while(t>0){t/=10;q+=10;}
		for(j=i;(j>=i-q)&&j>0;j--)
		{
			t=j;k=j;
			while(k>0){t+=k%10;k/=10;}
			if(t==i){c=1;break;}
		}
		if(!c)printf("%d\n",i);
	}}
	return 0;
}

Solution C++

#include <bits/stdc++.h>
using namespace std;
#define maxn 1000005
int a[maxn];
int main()
{
	memset(a,0,sizeof(a));
	for (int i=1;i<=1000000;i++){
		char s[10];
		sprintf(s,"%d",i);
		int sum=i;
		for (int is=0;is<strlen(s);is++){
			sum+=(s[is]-'0');
		}
		a[sum]=1;
	}
	
	int n;
	while(~scanf("%d",&n)){
		for (int ik=1;ik<=n;ik++){
			if (!a[ik]){
				printf("%d\n",ik);
			}
		}
	}
	
	return 0;
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题