要求编制1个程序完成输入1个正整数,求该正整数的所有连续正整数和等于该整数的序,在线等!急!

用C语言,要求编制1个程序完成输入1个正整数,求该正整数的所有连续正整数和等于该整数的序列。如输入整数为27,其连续整数和序列为:2~7,8~10,13和14,27共4种... 用C语言,要求编制1个程序完成输入1个正整数,求该正整数的所有连续正整数和等于该整数的序列。
如输入整数为27,其连续整数和序列为:2~7,8~10,13和14,27共4种序列。输出: 1)整数27有4种连续整数序列;2)整数27的连续整数序列为:2+3+4+5+6+7;8+9+10;13+14; 27
输出内容包括:1)所输入的整数其整数序列和数量。2)输出该整数的所有整数和序列。
展开
 我来答
pardream941026
2018-01-12 · TA获得超过8214个赞
知道大有可为答主
回答量:4600
采纳率:89%
帮助的人:1461万
展开全部

#include <stdio.h>

int seq(int start, int end, int n, int &len) {
    int i, sum = 0;
    for (i=start;i<=end;i++) {
        sum += i;
        if (sum == n) {
            len = (i-start+1);
            return 1;
        }
        if (sum>n) break; //加快速度
    }
    return 0;
}

int main() {
    int n, i, j, len;
    int a[200][2], index=0;

    printf("Input n:");
    scanf("%d", &n);


    for (i=1;i<=n;i++) {
        if (seq(i, n, n, len)) {
           a[index][0] = i;
           a[index++][1] = i+len;
        }
    }
    printf("整数%d有%d种连续整数序列\n", n, index);
    printf("整数%d的连续整数序列为:\n", n);
    for (i=0;i<index;i++) {
        for (j=a[i][0];j<a[i][1]-1;j++) {
            printf("%d+",j);
        }

        printf("%d\n", j);
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式