基础编程题目集 - 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;
}
目录
相关文章
|
3月前
1047 编程团体赛 (20 分)
1047 编程团体赛 (20 分)
|
4月前
【错题集-编程题】春游(模拟 - 分情况讨论)
【错题集-编程题】春游(模拟 - 分情况讨论)
|
存储 人工智能 Serverless
基础编程题目集 函数题部分(上)
基础编程题目集 函数题部分
155 0
|
Java 机器人 数据安全/隐私保护
蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA、B、C组)(C++语言)(Python)
蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA、B、C组)(C++语言)(Python)
303 0
|
机器学习/深度学习 存储 人工智能
基础编程题目集 函数题部分(下)
基础编程题目集 函数题部分(下)
317 0
|
网络协议 安全 算法
大网进阶安全刷题讲解(带答案)(1)(上)
大网进阶安全刷题讲解(带答案)(1)
82 0
|
网络协议 安全 算法
大网进阶安全刷题讲解(带答案)(1)(下)
大网进阶安全刷题讲解(带答案)(1)
97 0
(模拟)(枚举)acwing蓝桥杯1245. 特别数的和
(模拟)(枚举)acwing蓝桥杯1245. 特别数的和
56 0
|
算法 BI C++
蓝桥杯练习题十四 - 次数差(c++)
蓝桥杯练习题十四 - 次数差(c++)
96 0
习题2.1 简单计算器 (20 分)
习题2.1 简单计算器 (20 分)
266 0