关于PTA中用C语言编写“出生年”这个题目,为何有两个测试点不能通过
#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++;
}
}
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++;
}
}
...全文
相关推荐
c语言pta答案(一)全
【C语言基础编程知识点】1. **字符串输出**: 在`I Love GPLT`的题目中,展示了如何使用C语言输出字符串。通过定义字符数组并遍历数组,逐个字符输出,每输出一个字符后换行。
C语言——PTA 题目练习
从这些练习中可以看出,通过PTA平台进行的C语言编程练习,不仅覆盖了基础的语法知识,还融入了基础的逻辑思维和问题解决能力的培养。通过完成这些题目,学生可以为解决更复杂的编程问题打下坚实的基础。
PTA浙大版《C语言程序设计实验与习题指导(第三版)》题目集编程题参考解答.rar
该压缩包文件包含了一位学习者在过去一个月中通过PTA(Programming Training Assistant)平台进行C语言实践所编写的代码,这些代码涵盖了书中的编程题目,为初学者提供了宝贵的参考解答
c语言pta题目收录(二)
【C语言PTA题目收录(二)】这篇文章主要介绍了C语言在编程平台PTA上的练习题目,涵盖了多种题型,包括选择题、判断题、程序填空题和函数相关题目,旨在帮助学习者提高C语言编程技能。
PTA选择题答案
文件标题“PTA选择题答案”表明,内容涉及的是针对某个或某些PTA平台中C语言相关的选择题答案。根据文件描述,提供的答案对刚开始使用PTA平台的用户有所帮助,包含大部分的选择题答案。


