关于PTA中用C语言编写“出生年”这个题目,为何有两个测试点不能通过
于扬鑫 2019-12-24 12:30:22 #include <stdio.h> //其中FJ()函数是整数正向分解函数,代码正确,没有问题
void FJ(int n, int a[]);
int main()
{
int num, N, year;
int cnt = 1;
scanf("%d %d", &num, &N);
for (int i = num;; i++)
{
cnt = 1;
int a[4] = { 0 };
FJ(i, a);
if (a[0] != a[1])
{
cnt++;
if (cnt == N)
{
year = i;
break;
}
}
if (a[2] != a[0] && a[2] != a[1])
{
cnt++;
if (cnt == N)
{
year = i;
break;
}
}
if (a[3] != a[0] && a[3] != a[1] && a[3] != a[2])
{
cnt++;
if (cnt == N)
{
year = i;
break;
}
}
}
printf("%d %04d", year - num, year);
return 0;
}
void FJ(int n, int a[])
{
int count = 1;
int n1 = n;
int i = 0;
while (n1 > 9)
{
n1 /= 10;
count *= 10;
}
while (count)
{
a[i] = n / count;
n %= count;
count /= 10;
i++;
}
}