题目链接:https://www.patest.cn/contests/gplt/L1-033
思路:
(1)读入年份y及不同个数n,设计一个子函数判断年份中的不同数的个数a,当a!=n时,年份加一,年龄加一。
(2)子函数:可分为A:获取年份中每位数的数值,B:判断不同数值的个数,并返回。
注意点:仔细仔细再仔细!!!!!!!!思路一般都是对的,总是太大意了!!!!!!
1 #include<stdio.h> 2 #include<math.h> 3 int judge(int a) //判断年份中不同数的个数 4 { 5 int i,j,n,num[4]; 6 n=4; 7 for(i=0;i<4;i++){ 8 if(a/pow(10,4-i-1)){ 9 num[i]=a/pow(10,4-i-1); 10 a=a%(int)pow(10,4-i-1); 11 } 12 else num[i]=0; 13 } 14 for(i=0;i<4;i++){ 15 for(j=i+1;j<4;j++){ 16 if(num[i]==num[j]){ 17 n--; 18 } 19 } 20 } 21 switch(n){ 22 case -2:return 1; 23 case 1:return 2; 24 case 2:return 2; 25 case 3:return 3; 26 case 4:return 4; 27 } 28 } 29 int main(){ 30 int nn,y; 31 scanf("%d %d",&y,&nn); 32 int old; 33 old=0; 34 while(judge(y)!=nn) 35 { 36 old++; 37 y++; 38 } 39 printf("%d %04d\n",old,y); 40 return 0; 41 }