给定不超过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
#include <stdio.h>
int main()
{
int n; //这是自己输入的数字;
int a; //这是引入输出的百位上的数
int b; //这是引入输出的十位上的数
int c; //这是引入输出的个位上的数
int count=0; //这是输出的每一行的第几个数
scanf("%d",&n);
for (a=n;a<=n+3;a++){ //利用for循环让数字循环增加
for (b=n;b<=n+3;b++){
for (c=n;c<=n+3;c++){ //这里for循环为啥有<=n+3,是因为题目说了,考虑从A开始的连续4个数字,比如是1,就是1,2,3,4,到4刚好是1+3
if (a!=b && b!=c && a!=c){ //用调试运行一下就知道了,一开始会a,b,c这几个数都一样,导致if无法运行,就又返回c那个for了,等c的for循环完再回到b那个for并+1,只有当这3个数都不一样时才往下进行
if (++count %6!=0){ //利用++count,是为了先让count+1代表每行的第一个数
printf("%d ",a*100+b*10+c);//当每行的第count的数不是第6个数时不用换行,但需要空格
}else{
printf("%d\n",a*100+b*10+c);
}
}
}
}
}
return 0;
}