以上是新浪微博中一奇葩貼:「我出生於1988年,直到25歲才遇到4個數字都不相同的年份。」也就是說,直到2013年才達到「4個數字都不相同」的要求。本題請你根據要求,自動填充「我出生於y年,直到x歲才遇到n個數字都不相同的年份」這句話。c++
輸入格式:spa
輸入在一行中給出出生年份y和目標年份中不一樣數字的個數n,其中y在[1, 3000]之間,n能夠是二、或三、或4。注意不足4位的年份要在前面補零,例如公元1年被認爲是0001年,有2個不一樣的數字0和1。code
輸出格式:blog
根據輸入,輸出x和能達到要求的年份。數字間以1個空格分隔,行首尾不得有多餘空格。年份要按4位輸出。注意:所謂「n個數字都不相同」是指不一樣的數字正好是n個。如「2013」被視爲知足「4位數字都不一樣」的條件,但不被視爲知足2位或3位數字不一樣的條件。ci
輸入樣例1:1988 4輸出樣例1:
25 2013輸入樣例2:
1 2輸出樣例2:
0 0001
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 const int maxn = 100010; 5 int main() { 6 int y, n, x; 7 cin >> y >> n; 8 int j; 9 int tmp, cnt; 10 int i, a[20]; 11 for (tmp = y; tmp < 100000; tmp++) { 12 i = tmp; 13 cnt = 0; 14 memset (a, 0, sizeof (a) ); 15 j = i / 1000; 16 a[j]++; 17 i %= 1000; 18 j = i / 100; 19 a[j]++; 20 i %= 100; 21 j = i / 10; 22 a[j]++; 23 i %= 10; 24 a[i]++; 25 for (int k = 0; k < 10; k++) { 26 if (a[k] != 0) 27 cnt++; 28 } 29 if (cnt == n) { 30 x = tmp - y; 31 break; 32 } 33 } 34 printf ("%d %04d\n", x, tmp); 35 return 0; 36 }