PTA 基础编程题目集 7-16 求符合给定条件的整数集 (15分)
给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。
输入格式:
输入在一行中给出A。
输出格式:
输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。
输入样例:
2
输出样例:
234 235 243 245 253 254
324 325 342 345 352 354
423 425 432 435 452 453
523 524 532 534 542 543
先给百位数赋于A的值,然后再给十位用for循环赋值范围(A,A+3),个位也同理,最后判断各个位数是否相等,再输出。
#include<stdio.h>
int main()
{
int A,x,y,z,cnt=0;
scanf("%d",&A); //读入A的值
if (A>0&&A<7) //A必须小于六大于零
{
for(x=A;x<A+4;x++) //对百位数字x循环赋值
{
for(y=A;y<A+4;y++) //对十位数字y循环赋值
{
for(z=A;z<A+4;z++) //对个位数字循环赋值
{
if(x != y&&x != z&&y != z) //各个位数不能相等
{
printf("%d%d%d",x,y,z); //不相等就可以输出
cnt++; //每输出一个就计一个数
if(cnt % 6 == 0) //输出六个就换行
{
printf("\n");
}
else
{
printf(" "); //输出完一个数要输出空格分隔
}
}
}
}
}
}
return 0;
}
无注释版
#include<stdio.h>
int main()
{
int A,x,y,z,cnt=0;
scanf("%d",&A);
if (A>0&&A<7)
{
for(x=A;x<A+4;x++)
{
for(y=A;y<A+4;y++)
{
for(z=A;z<A+4;z++)
{
if(x != y&&x != z&&y != z)
{
printf("%d%d%d",x,y,z);
cnt++;
if(cnt % 6 == 0)
{
printf("\n");
}
else
{
printf(" ");
}
}
}
}
}
}
return 0;
}