7-44 出生年 (15分)

7-44 出生年 (15分)
 

以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。

输入格式:

输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2、或3、或4。注意不足4位的年份要在前面补零,例如公元1年被认为是0001年,有2个不同的数字0和1。

输出格式:

根据输入,输出x和能达到要求的年份。数字间以1个空格分隔,行首尾不得有多余空格。年份要按4位输出。注意:所谓“n个数字都不相同”是指不同的数字正好是n个。如“2013”被视为满足“4位数字都不同”的条件,但不被视为满足2位或3位数字不同的条件。

输入样例1:

1988 4
 

输出样例1:

25 2013
 

输入样例2:

1 2
 

输出样例2:

0 0001


#include<stdio.h>
int f(int n,int m)
{
 int a[4];
 int b[10]={0};
 int i;
 int count=0;
 for(i=0;i<4;i++)
 {
  a[i]=n%10;
  n/=10;
  b[a[i]]++;
 }
 for(i=0;i<10;i++)
 {
  if(b[i]!=0)
  count++;
 }
 if(count==m)
 return 1;
 return 0;
 
 }
int main()
{
 int n,m;
 scanf("%d %d",&n,&m);
 int i;
 int temp=n;
 while(!f(n,m))n++;
 printf("%d %04d\n",n-temp,n);
 return 0;
}

posted @ 2020-10-21 16:02  罪梦者  阅读(360)  评论(0)    收藏  举报