首页 > 其他分享 >7-16求符合给定条件的整数集

7-16求符合给定条件的整数集

时间:2022-10-10 21:22:23浏览次数:43  
标签:输出 16 int 整数 给定 include

题目描述

给定不超过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

相关文章