7-37 整数分解为若干项之和 (20 分)(dfs)
7-37 整数分解为若干项之和 (20 分)
将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,…。编程求出正整数N的所有整数分解式子。
输入格式:
每个输入包含一个测试用例,即正整数N (0<N≤30)。
输出格式:
按递增顺序输出N的所有整数分解式子。递增顺序是指:对于两个分解序列N1={n1,n2,⋯}和N2={m1,m2,⋯},若存在i使得n1=m1,⋯,ni=mi,但是ni+1<mi+1,则N1序列必定在N2序列之前输出。每个式子由小到大相加,式子间用分号隔开,且每输出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+2
7=1+1+1+4;7=1+1+2+3;7=1+1+5;7=1+2+2+2
7=1+2+4;7=1+3+3;7=1+6;7=2+2+3
7=2+5;7=3+4;7=7
#include<iostream>
#include<cstdio>
using namespace std;
int cnt ,n ,a[30];
void dfs(int num ,int location ,int sum)
{if (sum == n) {cnt++;printf("%d=" ,n);for (int i = 0; i < location; i++) {if (i != 0) cout << "+";cout << a[i];}if ((cnt % 4 == 0) && (cnt != 0))putchar(10);else if (num != n)printf(";");return ;}if (sum > n)return ;if (sum < n) {for (int i = num; i <= n; i++) {a[location] = i;dfs (i ,location + 1 ,sum + i);}}
}
int main() {cin >> n;dfs (1 ,0 ,0);return 0;
}
7-37 整数分解为若干项之和 (20 分)(dfs)相关推荐
- 7-14 整数分解为若干项之和 (15分)(附详细讲解(不用递归的高效算法))
将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,-.编程求出正整数N的所有整数分解式子. 输入格式: 每个输入包含一个测试用例,即正整数N (0&l ...
- 整数分解为若干项之和
7-37 整数分解为若干项之和 (20 分) 将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,-.编程求出正整数N的所有整数分解式子. 输入格式: ...
- 7-37 整数分解为若干项之和(20 分)
7-37 7-37 整数分解为若干项之和(20 分) 将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,-.编程求出正整数N的所有整数分解式子. 输入 ...
- 整数分解成若干项之和(DFS)拓展延伸
在深度优先搜索的例题中,有一种题型是整数分解成若干项之和. 例如将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=1+6,7=2+5,7=1+1+5,-.编程求出正整数N的所有整数分解式 ...
- 整数分解为若干项之和python_SVD奇异值分解及Python实例
1. 普通方阵的矩阵分解(EVD) 我们知道如果一个矩阵 A 是方阵,即行列维度相同(mxm),一般来说可以对 A 进行特征分解: 其中,U 的列向量是 A 的特征向量,Λ 是对角矩阵,Λ 对角元素是 ...
- 史上最全的整数分解方法(包含经典的分苹果问题)
[华为OD机试真题 2022&2023]真题目录 @点这里@ [华为OD机试真题]信号发射和接收 &试读& @点这里@ [华为OD机试真题]租车骑绿道 &试读& ...
- 分解连续自然数的和_将整数分解为连续自然数之和
将一个正整数,拆分成连续的自然数之和,输出所有可能的情况 例如: 3 = 1+2 10 = 1+2+3+4 18 = 5+6+7 偶然见到这个问题,这里写下自己的解法. 分析: 对给定整数x以及一组满 ...
- 形如:1/a 的分数称为单位分数。可以把1分解为若干个互不相同的单位分数之和。
形如:1/a 的分数称为单位分数.可以把1分解为若干个互不相同的单位分数之和. 例如: 1 = 1/2 + 1/3 + 1/9 + 1/18 1 = 1/2 + 1/3 + 1/10 + 1/15 1 ...
- 形如:1/a 的分数称为单位分数。 可以把1分解为若干个互不相同的单位分数之和。 例如: 1 = 1/2 + 1/3 + 1/9 + 1/18 1 = 1/2 + 1/3 + 1/10 + 1/1
形如:1/a 的分数称为单位分数. 可以把1分解为若干个互不相同的单位分数之和. 例如: 1 = 1/2 + 1/3 + 1/9 + 1/18 1 = 1/2 + 1/3 + 1/10 + 1/15 ...
最新文章
- 在C#中使用SerialPort类实现串口通信
- java使用Jxl和Poi读写Excel
- java五子棋悔棋代码_小猿圈前端编写JS五子棋游戏
- Kaggle 首战拿银总结 | 入门指导 (长文、干货)
- Tomcat 7 自动加载类及检测文件变动原理
- vue动态点击切换css样式且子元素动态显示和隐藏
- 第四次作业——测试作业
- 串口接收数据转换成double型
- 终止一切网上销售和广告?电子烟悦刻天猫旗舰店却仍可购买
- linux 优化 sysctl.conf,Linux内核sysctl.conf的优化设置
- python导入数据库的数据怎么在qt界面里刷新_Python中使用pyqtgraph库实现数据可视化之逐点刷新波形图...
- php mvc 实现,php mvc的简单实现
- 《Cacti实战》——2.3 Cacti的安装与配置
- 分享最新36款高质量免费英文字体
- 中国的程序员培训是不是有问题?
- 使用rufus制作windows系统安装u盘
- 免费下载的音乐的6个网站,非常实用!
- 阿里云 OSS + CDN 部署静态网站配置
- 纯电动整车控制器-基于模型的开发
- 记录贴/阴阳师core loop
热门文章
- phpcms attachment.class.php路径,解决phpcms上传不了图片的方法
- matlab 下采样_Lattice规划与Matlab实现(1)
- android华为虚拟截屏黑屏,Android截屏表面视图显示黑屏
- hibernate mysql 配置文件_hibernate 框架的配置文件和映射文件以及详解
- 问题:连接查询和子查询的区别和连接及优劣?
- 你准备好了吗,江湖来了
- js中 var a= b || c;
- main.c(53): error: #268: declaration may not appear after executable statement in block
- Android开发学习之TabView选项卡具体解释 -- 基于Android4.4
- 数据库之MySQL补充