39 奇妙的数字
作者: Hu Yongjian时间限制: 1S章节: 一维数组
问题描述 :
有一种自然数,它的各位数字之和能被17整除。这个数的后继数(即这个数加1)的各位数字之和也能被17整除。求所有自然数中,从小到大第n个这样的数。
输入说明 :
你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组输入数据占一行,其中仅有一个整数n(1≤n≤10)。在行首和行尾没有多余的空格。所有数据前后没有多余的空行,两组数据之间也没有多余的空行。
输出说明 :
对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的终端)依次输出一组对应的答案。每组答案占一行,每行中仅有一个整数,即题目描述中的第n个数。在行首和行尾不要输出多余的空格。在所有数据的前后,以及两组数据之间不要输出多余的空行。
输入范例 :
1
3
输出范例 :
8899
17899
解答思路:
用sprintf很方便。
AC代码
#include <stdio.h>
#include <string.h>
int rule(int n)
{
char a[10];
sprintf(a,"%d",n);
int sum=0;
for(int i=0;i<strlen(a);i++)
{
sum+=(a[i]-'0');
}
if(sum%17==0)
{
return 1;
}
return 0;
}
int main()
{
int n;
while(~scanf("%d",&n))
{
int count=0;
for(int j=0;;j++)
{
if(rule(j)&&rule(j+1))
{
count++;
}
if(count==n)
{
printf("%d\n",j);
break;
}
}
}
}