| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1487 人关注过本帖
标题:输入一正整数,输出等于这个数的所有可能的由小到大的若干正整数相加的式子 ...
取消只看楼主 加入收藏
powerfrank
Rank: 2
等 级:论坛游民
帖 子:31
专家分:37
注 册:2018-4-25
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:1 
输入一正整数,输出等于这个数的所有可能的由小到大的若干正整数相加的式子。用递归来实现
这道题,卡了几个礼拜了,想不出怎么解,求大侠们解惑。

输入一正整数,输出等于这个数的所有可能的由小到大的若干正整数相加的式子。
例如:
输入 7
输出:
7=1+6
7=1+1+5
7=1+1+1+4
7=1+1+1+1+3
7=1+1+1+1+1+2
7=1+1+1+1+1+1+1
7=1+1+1+2+2
7=1+1+2+3
7=1+2+2+2
7=1+2+4
7=1+3+3
7=2+5
7=2+2+3
7=3+4

下面自己写的代码只能实现输出“7=1+1+1+1+1+1+1”及之前

#include <stdio.h>
#include <stdlib.h>

int fenjie ( int , int ) ;

int main ()
{
   
    int  n , m ;
    printf ("请输入一个正整数:\n") ;
    scanf_s ("%d", &n) ;

    m = n ;

    if ( n > 1 )
    {
        fenjie ( n , m ) ;
    }
    else
    {
        printf ("输入不正确。\n") ;
    }

    system ("pause") ;
    return 0 ;
}
int fenjie ( int n , int m )
{
    if ( n == m )
    {
        printf ( "%d=" , m ) ;
    }

    if ( n >= 2 )
    {
        printf ( "1+%d\n", n-1 ) ;

        if ( n > 2 )
        {
            printf ("%d=", m ) ;
            for ( int tmp = m ; tmp > n - 1 ; tmp -- )
            {
                printf ( "1+" );
            }
        }

        fenjie ( n - 1 , m ) ;
    }

    return 0;
}

[此贴子已经被作者于2018-12-3 16:04编辑过]

搜索更多相关主题的帖子: 输入 正整数 输出 int printf 
2018-12-03 15:45
powerfrank
Rank: 2
等 级:论坛游民
帖 子:31
专家分:37
注 册:2018-4-25
收藏
得分:0 
回复 3楼 rjsp
谢谢大神
2018-12-04 16:04
快速回复:输入一正整数,输出等于这个数的所有可能的由小到大的若干正整数相加的 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017526 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved