C++数的拆分
2024-01-07 20:47:49
C++数的拆分
题目:
将一个正整数n拆分成若干个正整数的和(至少两个数,n<=100)。
输入格式:
一个正整数n
输出格式:
若干行,每行一个等式(数与数之间要求非降序排列)。最后一行给出解的总个数
输入样例:
在这里给出一组输入。
//【参考代码】
#include <iostream>
using namespace std;
int n;
int num = 0;//计数器
int path[100];
int index = 0;//path的下标
void dfs(int begin, int left)
{
if(left==0)//成立的临界值
{
for(int i=0; i<index-1;i++)
{
cout<<path[i]<<"+";
}
cout<<path[index-1]<<endl;//最后的一个数字不加+
num++;
return;
}
if(left<0)//不成立 停止
{
return;
}
for(int i=begin; i<=n; i++)//遍历逐步增多
{
path[index] = i;
index++;
dfs(i,left-i);
index--;//回溯
}
}
int main()
{
cin>>n;
dfs(1,n);
cout<<"total="<<num;
return 0;
}
文章来源:https://blog.csdn.net/Chow_Ssehc/article/details/135427677
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!