基础编程题目集 - 7-37 整数分解为若干项之和(20 分)

简介: 基础编程题目集 - 7-37 整数分解为若干项之和(20 分)

题目链接(组合版)链接


题目大意:

解题思路:此方法仅限于输出组合情况,计数的话会TLE。


附加题目(计数版):链接


AC 代码(组合版)

#include<bits/stdc++.h>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof a)
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int a[40],k,n,num,sum;
void dfs(int x)
{
    if(sum==n)
    {
        k++;
        printf("%d=%d",n,a[0]);
        for(int i=1;i<num;i++) printf("+%d",a[i]);
        if(num==1 || k%4==0) puts("");
        else printf(";");
        return;
    }
    for(int i=x;i<=n;i++)
    {        
        if(sum>n) return; // 此行代码比放在for外面要好得多
        a[num++]=i;
        sum+=i;
        dfs(i);
        sum-=i;
        num--;
    }
}
int main()
{
    while(~scanf("%d",&n))
    {
        num=sum=k=0;
        dfs(1);
    }
    return 0;
}
目录
相关文章
|
6月前
1047 编程团体赛 (20 分)
1047 编程团体赛 (20 分)
|
6月前
|
存储
初阶编程题积累(3)——最接近的三数之和(题目描述、示例、题目思路、题解、解析)
初阶编程题积累(3)——最接近的三数之和(题目描述、示例、题目思路、题解、解析)
37 0
|
7月前
【错题集-编程题】春游(模拟 - 分情况讨论)
【错题集-编程题】春游(模拟 - 分情况讨论)
|
存储 人工智能 Serverless
基础编程题目集 函数题部分(上)
基础编程题目集 函数题部分
172 0
|
机器学习/深度学习 存储 人工智能
基础编程题目集 函数题部分(下)
基础编程题目集 函数题部分(下)
355 0
(模拟)(枚举)acwing蓝桥杯1245. 特别数的和
(模拟)(枚举)acwing蓝桥杯1245. 特别数的和
62 0
|
算法
数据结构与算法题目集(中文) - 7-11 关键活动(30 分)
数据结构与算法题目集(中文) - 7-11 关键活动(30 分)
168 0
数据结构与算法题目集(中文) - 7-11 关键活动(30 分)
|
C语言 C++
1047 编程团体赛 (20 分)
编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。 现给定所有队员的比赛成绩,请你编写程序找出冠军队。
332 0
基础编程题目集 - 7-23 币值转换(20 分)
基础编程题目集 - 7-23 币值转换(20 分)
260 0
基础编程题目集 - 6-10 阶乘计算升级版(20 分)
基础编程题目集 - 6-10 阶乘计算升级版(20 分)
118 0