L1-033 出生年
1.思路
暴力解法:先用数组存放每个位数的数,然后用if判断不同数的个数。
注意点:题目中输入的年份为1-3000,而进行不同位数的判定,则需要增加年限。
2.源码
#include<stdio.h>
int main (){
int b[4];
int i,n,k=1,a;
scanf("%d %d",&a,&n);
for(i=a;i<10000;i++){
k=1;
b[0]=i/1000;
b[1]=i/100%10;
b[2]=i/10%10;
b[3]=i%10;
if(b[0]!=b[1]&&b[0]!=b[2]&&b[0]!=b[3])
k++;
if(b[1]!=b[2]&&b[1]!=b[3])
k++;
if(b[2]!=b[3])
k++;
if(k==n)
break;
}
printf("%d %04d",i-a,i);
return 0;
}