您的位置:首页 > 其它

04-0. 求符合给定条件的整数集(15)

2014-08-30 17:23 127 查看
给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。

输入格式:

输入在一行中给出A。

输出格式:

输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。

输入样例:

2

输出样例:

234235243245253254
324325342345352354
423425432435452453
523524532534542543


方法1:


#include"stdio.h"
intmain()
{
inta,b,c,d,i,j;
scanf("%d",&a);
b=a+1;
c=a+2;
d=a+3;
printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n",a,b,c,a,b,d,a,c,b,a,c,d,a,d,b,a,d,c);
printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n",b,a,c,b,a,d,b,c,a,b,c,d,b,d,a,b,d,c);
printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n",c,a,b,c,a,d,c,b,a,c,b,d,c,d,a,c,d,b);
printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n",d,a,b,d,a,c,d,b,a,d,b,c,d,c,a,d,c,b);
return0;
}


注:这是最开始写的,也是比较傻的一个方法,用了穷举,虽然提交能通过,但不建议这样写

方法2:

#include"stdio.h"
intmain()
{
intA;
scanf("%d",&A);
inti=0,j=0,k=0;
intcnt=0;
for(i=A;i<A+4;i++)
{
for(j=A;j<A+4;j++)
{
if(i==j)
continue;
for(k=A;k<A+4;k++)
{
if(j==k||i==k)
continue;
printf("%d%d%d",i,j,k);
cnt++;
if(cnt%6==0)
{
printf("\n");
}
else
{
printf("");
}
}
}
}
return0;
}


注:这里用到了三层循环,注意点是i,j,k不能相同,方法是通过continue来跳过重复的情况,达到不重复的效果,另外,使用cnt计数来实现6个输出换一行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: