首页 > 代码库 > UVa1583 Digit Generator

UVa1583 Digit Generator

因为题目给出的n的最大值是100000,即为它的各个位数加起来的和的最大值是1+9+9+9+9+9=46,

所以对于任意一个数n,就可以从n-46开始枚举就可以了,检测它是否满足条件。

#include<stdio.h>int main(){	long int n,i,s=0,num;			scanf("%d",&num);	while(num--)	{		scanf("%d",&n);	{		int flag=0;	for(i=n-46;i<=n;i++)	{		s=i%10+i/10%10+i/100%10+i/1000%10+i/10000%10;		if(s+i==n)		{			flag=1;			break;		}	}	if(flag)	printf("%ld\n",i);	else	printf("0\n");	}	}}

  

UVa1583 Digit Generator