zoukankan      html  css  js  c++  java
  • 洛谷 P2404 自然数的拆分问题

    题目背景

    任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。

    题目描述

    任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。

    输入输出格式

    输入格式:

     

    输入:待拆分的自然数n。

     

    输出格式:

     

    输出:若干数的加法式子。

     

    输入输出样例

    输入样例#1: 复制
    7
    
    输出样例#1: 复制
    1+1+1+1+1+1+1
    1+1+1+1+1+2
    1+1+1+1+3
    1+1+1+2+2
    1+1+1+4
    1+1+2+3
    1+1+5
    1+2+2+2
    1+2+4
    1+3+3
    1+6
    2+2+3
    2+5
    3+4

    说明

    用回溯做。。。。

    nle 8n8

    思路:搜索。

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n;
    int bns[10];
    void dfs(int sum,int tot,int pre){
        if(sum>n)    return ;
        if(sum==n&&tot!=1){
            cout<<bns[1];
            for(int i=2;i<=tot;i++)
                printf("+%d",bns[i]);
            cout<<endl;
            return ; 
        }
        for(int i=pre;i<=n;i++){
            bns[tot+1]=i;
            dfs(sum+i,tot+1,i);
        }
    }
    int main(){
        scanf("%d",&n);
        dfs(0,0,1);
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    wepy框架构建小程序(1)
    百度地图2
    百度地图1
    VS Code 用户自定义代码片段(React)
    JS MarcoTasks MicroTasks
    JS位运算和遍历
    VueX源码分析(5)
    VueX源码分析(4)
    tensorflow 自带的实现函数翻转的函数
    namedtuple
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7899963.html
Copyright © 2011-2022 走看看