要求:给定不超过6的正整数A,考虑从A开始的连续4个数字,请输出所有由他们组成的无重复数字的三位数。
输入格式:在一行中输入A
输出格式:输出满足条件的三位数,要求从小到大,每行六个整数。整数间以空格分隔,但行末不能有多余空格。
#include <stdio.h>
int main(int argc, char **argv)
{
int a,i,j,k,ret=0; //ret为计数器,后面每输出6个换行要用。
scanf("%d",&a);
for (i=a;i<=a+3;i++) //每一位都有三种可能情况,所以用for的嵌套。
{for (j=a;j<=a+3;j++)
{for (k=a;k<=a+3;k++)
{if (i!=j&&i!=k&&j!=k) //不能相等。
{ret++;
printf("%d%d%d",i,j,k);
if (ret==6) //如果输出了6个,就打印一个换行
{printf("\n");
ret=0; // 重新计数,等再计数到6个时打印一个换行。
}
else{ //如果输出的个数不是6个,就打印一个空格。
printf(" ");
}
}
}
}
}
return 0;
}
以上就是我对这道题的理解。