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

用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)输出该整数的所有整数和序列。

#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);
    }
}

温馨提示:内容为网友见解,仅供参考
无其他回答

要求编制1个程序完成输入1个正整数,求该正整数的所有连续正整数和等于该...
&m);for(i=(int)sqrt(m*2.0);i>=1;i--)if((m-i*(i-1)\/2)%i==0){a[j]=i;j++;}printf("整数%d有%d种连续整数序列\\n整数%d的连续整数序列为:",m,j,m);for(i=0;i<j;i++){for(k=(m-a[i]*(a[i]-1)\/2)\/a[i];...

...读入一个正整数n(n不大于10000),输出所有连续正整数的和等于n...
printf("数字为%d,%d,%d\\n",num\/3-1,num\/3,num\/3+1);} }

用python编写程序,输入一个正整数n,求0到这个数以内的所有基数和与偶数...
number = int(input("请输入一个正整数:"))num = number + 1 o = 0 j = 0 for a in range(0, num):if a % 2 == 0:o = o + a else:j = j + a print("0~" + str(number) + "偶数的和是:" + str(o))print("0~" + str(number) + "奇数的和是:" + str(j)...

编写一个程序,读入一个正整数,把所有那些连续的和为给定正整数的正整数...
include<stdio.h> void main(){ int i;int mubiaoshu;int temp;int sum=0;while(1){ printf("请输入一个数:");scanf("%d",&mubiaoshu);for(i=1;i<=mubiaoshu \/2;i++){ sum = i;temp = i;while(sum < mubiaoshu){ temp += 1;sum += temp;if(sum == mubiaoshu){ printf...

C语言 编写一个程序,输入一个正整数,求出它是几位数。
求一个正整数n的位数可以先定义一个变量num,并初始化为0,依次把该整数n除以10,直到其为0为止,并且每除一次10,变量num的个数就自加1,最后num的值就是该整数n的位数。include <stdio.h> int main(){ int n,num=0;scanf("%d",&n);while(n){ num++;n\/=10;} printf("%d\\n",num)...

C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个...
int main(){ int a, b, i, t;int k = 0, sum = 0;scanf("%d", &a); \/\/输入整数a t = a;if(a \/ 10 == 0){ k = 1;sum = a;printf("%d\\n", k);printf("%d\\n", sum);} else { while(a \/ 10 != 0){ a = a \/ 10; \/\/每除10,就有一位 k++;} printf...

编程题:输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有...
解题思路:假设正整数 n 能表示为 i 个连续正整数之和且其第一个数为 x,则 n = x * i + (i - 1) * i\/2,其中 n, x, i 都为正整数,所以如果 x = (n - (i-1)*i\/2) \/ i 为正整数,则 n 就能表示为i个连续正整数之和。i 的取值范围为2-n\/2 +2。Python答案:!\/...

...一个JAVA小程序,接受用户从键盘输入的一个正整数,然后统计并输出从1...
import java.util.Scanner;public class Test { public static void main(String args[]){ Scanner scan = new Scanner(System.in);int count = 0;int num = scan.nextInt();for(int i = 1;i<=num;i++){ count +=i;} System.out.println(count);} } ...

编写一个程序,要求用户输入一个正整数n,采用循环计算从1到n的和。例如...
n = int(input())total = 0 for x in range(1,n+1):total += x print(total)

c语言 , 用循环语句编写一个程序,输入一个正整数,并输出个位,十位,百 ...
include<stdio.h>int main(){int x; scanf("%d",&x); for(;x;x\/=10) printf("%d ",x%10); return 0;}

相似回答