| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2413 人关注过本帖
标题:C语言新手,将整数拆分成几个整数和的形式和几个奇数和的形式。
只看楼主 加入收藏
w714809560
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-1-4
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:4 
C语言新手,将整数拆分成几个整数和的形式和几个奇数和的形式。
大一新生小白,注释是我让自己理解的部分,可以不理会。
代码如下:
/*整数的拆分*/
#include<stdio.h>
unsigned int flag1,flag2;
void func1(int n)
{
    int i,j;
    if(n==1)/*递归结束条件*/
        return;
    func1(n-1);/*递归函数调用自身,func(3)->func(2),func(2)->func(1)*/
    for(i=1;i<n;i++)
    {
        for(j=2;j<flag1;j++)
        {
            printf("1+");
        }
        printf("%d+%d;",i,n-i);
    }
    if(flag1)
        flag1--;
}
void func2(int n)
{
    int i,j,k;
    if(n==1||n==0)
        return;
    if(n%2==0)
        func2(n-2);
    else if(n%2==1)
    {
        k=n+1;
        func2(k-2);
    }
    for(j=2;j<flag2;j++)
        {
            printf("1+");
        }
    for(i=1;i<n;i+=2)
    {
        printf("%d+%d; ",i,n-i);
    }
    if(flag2)
        flag2--;
}

void main()
{
    unsigned int n;
    printf("请输入一个大于1的整数: ");
    scanf("%u",&n);
    flag1=n;
    printf("%u所有的加数=",n);
    func1(n);
    printf("\n");
    flag2=n;
    printf("%u所有的奇数加数=",n);
    func2(n);
    printf("\n");
}
奇数输出的结果不对
比如,我输入 5

请输入一个大于1的整数: 5
5所有的加数=1+1+1+1+1;1+1+1+2;1+1+2+1;1+1+3;1+2+2;1+3+1;1+4;2+3;3+2;4+1

5所有的奇数加数=1+1+1+1+1; 1+1+1+3; 3+1; 1+1+4; 3+2;
Press any key to continue

我在
 else if(n%2==1)
    {
        k=n+1;
        func2(k-2);
    }
这一步中, 把5加了1 成了6 ,他会给我输出当n=6的情况。
我怎样不要n=6的情况?或者有其他的方法?
求大神指点!!!!
搜索更多相关主题的帖子: 整数 形式 奇数 int printf 
2018-01-04 12:07
GBH1
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:112
专家分:510
注 册:2017-6-13
收藏
得分:2 
我想问一下 5 = 1+1+3  和5 = 1+3+1或 5 = 3+1+1是算一种情况还是3种情况。
2018-01-04 15:48
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:2 
你在主函数里判断一下,偶数情况如何处理,奇数如何处理。单独在自函数里改太绕的晃。
2018-01-04 16:56
w714809560
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-1-4
收藏
得分:0 
回复 2楼 GBH1
可以重复
三种
2018-01-04 17:12
w714809560
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-1-4
收藏
得分:0 
回复 3楼 虫眼
比如?
2018-01-04 17:14
快速回复:C语言新手,将整数拆分成几个整数和的形式和几个奇数和的形式。
数据加载中...
 
   



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

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