国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

整數分解為若干項之和

2019-11-06 06:22:58
字體:
來源:轉載
供稿:網友

將一個正整數N分解成幾個正整數相加,可以有多種分解方法,例如7=6+1,7=5+2,7=5+1+1,…。編程求出正整數N的所有整數分解式子。

輸入格式:

每個輸入包含一個測試用例,即正整數N (0<<N/le≤30)。

輸出格式:

按遞增順序輸出N的所有整數分解式子。遞增順序是指:對于兩個分解序列N_1=N?1??={n_1, n_2, /cdotsn?1??,n?2??,?}和N_2=N?2??={m_1, m_2, /cdotsm?1??,m?2??,?},若存在ii使得n_1=m_1, /cdots , n_i=m_in?1??=m?1??,?,n?i??=m?i??,但是n_{i+1} < m_{i+1}n?i+1??<m?i+1??,則N_1N?1??序列必定在N_2N?2??序列之前輸出。每個式子由小到大相加,式子間用分號隔開,且每輸出4個式子后換行。

輸入樣例:

7

輸出樣例:

7=1+1+1+1+1+1+1;7=1+1+1+1+1+2;7=1+1+1+1+3;7=1+1+1+2+27=1+1+1+4;7=1+1+2+3;7=1+1+5;7=1+2+2+27=1+2+4;7=1+3+3;7=1+6;7=2+2+37=2+5;7=3+4;7=7
#include<iostream>#include<cstdio>using namespace std;int cnt;int sum;int n,k;int a[35];int top;void dfs(int num){	if(sum==n)	{		PRintf("%d=",n);		for(int i=0;i<top-1;i++)		printf("%d+",a[i]);		k++;		if(k==4||top==1)		{			k=0;			printf("%d/n",a[top-1]);		}		else		printf("%d;",a[top-1]);		return;	}	if(sum>n)	return;	for(int i=num;i<=n;i++)	{		a[top++]=i;		sum+=i;		dfs(i);		a[--top];		sum-=i;	 } }int main(){	while(cin>>n)	{		k=0;		top=0;		sum=0;		dfs(1);	}	return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 莎车县| 英山县| 荔浦县| 个旧市| 丽水市| 巩留县| 梁平县| 普兰店市| 宁陵县| 新营市| 辽宁省| 广饶县| 雷州市| 仁寿县| 岳池县| 灵丘县| 容城县| 桃园县| 綦江县| 郓城县| 武安市| 开封县| 依兰县| 临夏县| 伊吾县| 增城市| 新余市| 安庆市| 托克逊县| 卫辉市| 绥阳县| 彩票| 嘉善县| 萨迦县| 福鼎市| 含山县| 十堰市| 原阳县| 鄂托克旗| 建湖县| 平乡县|