poj 1316 Self Numbers

519 ワード

abcdの四重サイクルを使うのは必然的に最も簡単で最も直接的な考えで、しかも9^4回のサイクルは大きくなくて、完全に受け入れることができます
a+b+c+d+1000a+100b+10c+d = 1001a+101b+11c+2d
here is my code:
#include <stdio.h>

bool mark[10002]={false};

int main()
{
	int a,b,c,d,i;

	for(a=0;a<=9;a++)
		for(b=0;b<=9;b++)
			for(c=0;c<=9;c++)
				for(d=0;d<=9;d++)
				{
					i=1001*a+101*b+11*c+2*d;
					mark[i]=true;
				}

	for(i=1;i<10000;i++)
    {
		if(!mark[i])
			printf("%d
",i); } return 0; }