题目描述
给定不超过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
- C/C++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
/*按照A,B,C的顺寻,
每次都从剩下的数字当中挑选晓得*/
int A,x,y,z,numArr[5]={0};
int arrBak[5];
int total=0;//计数器
cin>>A;
for (int i = 1; i <=4; i++)
{
numArr[i]=A;
A++;
}
memcpy(arrBak,numArr,5*sizeof(int));
//选择高位数字
for(int i=1;i<=4;i++)
{
x=arrBak[i];
arrBak[i]=0;
for(int j=1;j<=4;j++)
{
if (arrBak[j]!=0)
{
y=arrBak[j];
arrBak[j]=0;
for(int k=1;k<=4;k++)
{
if (arrBak[k]!=0)
{
//cout<<"line 47";
z=arrBak[k];
arrBak[k]=0;
total+=1;
if(total%6==0)
{
cout<<x<<y<<z<<endl;
}
else
{
cout<<x<<y<<z<<' ';
}
}
}
//y重新取值,重置arrBak数组
for(int t=1;t<=4;t++)
{
if(x==numArr[t])
{
arrBak[t]=0;
}
else
{
arrBak[t]=numArr[t];
}
}
}
}
//x重新取值
memcpy(arrBak,numArr,5*sizeof(int));
}
return 0;
}
标签:输出,16,int,整数,给定,include
From: https://www.cnblogs.com/reaptem/p/16777415.html