天天看點

輸出所有滿足條件的關系for循環解決簡單問題調用庫函數解決全排列問題

目錄

  • for循環解決簡單問題
  • 調用庫函數解決全排列問題

for循環解決簡單問題

題目描述

輸出所有滿足條件的關系for循環解決簡單問題調用庫函數解決全排列問題

源代碼

#include<stdio.h>
int main()
{
	int i,j,k;
	for(i=1;i<3;i++)
	{
		for(j=i+1;j<4;j++)
		{
			for(k=j+1;k<5;k++)
			{
				printf("(%d,%d,%d)\n",i,j,k);
			}
		}
	}
	return 0;
}
           

調用庫函數解決全排列問題

題目描述

輸出所有滿足條件的關系for循環解決簡單問題調用庫函數解決全排列問題

先找出滿足條件的四元組,再對其進行全排列,易知應求1,1,1,6和1,1,2,3的全排列,而c++标準庫裡面有這樣的函數,在這道題裡面是四個元素

int a[4]={3,2,1,1};
pre_permutation(a,a+4);//生成3,2,1,1的上一個排列并賦給數組a
next_permutation(a,a+4);//生成3,2,1,1的下一個排列并賦給數組a
           

由于3,2,1,1的下一個排列是1,1,2,3,故數組a的初值賦為3,2,1,1(這樣滿足字典序輸出,沒有要求的話也可以随意輸出)。6,1,1,1同理。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a[4]={3,2,1,1},b[4]={6,1,1,1},c=12,d=4;
	while(c--)
	{
		next_permutation(a,a+4);
		printf("(%d,%d,%d,%d)\n",a[0],a[1],a[2],a[3]); 
	}
	while(d--)
	{
		next_permutation(b,b+4);
		printf("(%d,%d,%d,%d)\n",b[0],b[1],b[2],b[3]);
	}
	return 0;
}
           

繼續閱讀