zoukankan      html  css  js  c++  java
  • 12年上机题#1

    1.【问题描述】

    某些整数能分解成若干个连续整数的和的形式,例如
        15 = 1 + 2+3+4+5 
        15 = 4 + 5 + 6
        15 = 7 + 8
    某些整数不能分解为连续整数的和,例如:16
    输入:一个整数N(N <= 10000)
    输出:整数N对应的所有分解组合,按照每个分解中的最小整数从小到大输出,每个分解占一行,每个数字之间有一个空格(每行最后保留一个空格);如果没有任何分解组合,则输出NONE。

    #include <stdio.h>
    #define TRUE 1
    #define FALSE 0
    
    int main()
    {
        int integer, i, j, k, sum, flag, group;
    
        printf("input a integer to verify, EOF to exit: ");
        while(scanf("%d", &integer) != EOF)
        {
            group = 0;
            for( flag = FALSE, i = 1; i <= integer/2; ++i )
            {
    
                for( sum = 0, j = i; sum <= integer; ++j )
                {
                    sum += j;
    
                    if( sum == integer )
                    {
                        flag = TRUE;
                        ++group;
                        printf("第%d组: ", group);
                        for( k = i; k <= j; ++k )
                        {
                            printf("%d ", k);
                        }
                        putchar('\n');
                    }
                }
            }
            if(!flag)
                printf("NONE\n");
            printf("input a integer to verify, EOF to exit: ");
        }
        return 0;
    }
    input a integer to verify, EOF to exit: 16
    NONE
    input a integer to verify, EOF to exit: 9
    第1组: 2 3 4
    第2组: 4 5
    input a integer to verify, EOF to exit: 56
    第1组: 5 6 7 8 9 10 11
    input a integer to verify, EOF to exit: 89
    第1组: 44 45
    input a integer to verify, EOF to exit: 350
    第1组: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
    第2组: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
    第3组: 47 48 49 50 51 52 53
    第4组: 68 69 70 71 72
    第5组: 86 87 88 89
    input a integer to verify, EOF to exit: 876
    第1组: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
    第2组: 106 107 108 109 110 111 112 113
    第3组: 291 292 293

    搞定

  • 相关阅读:
    ThinkPhp学习11
    ThinkPhp学习10
    1.自我介绍
    Axure高级教程--在原型中插入视频
    Axure制作iphone手机交互模型—覆盖切换
    对产品的一些总结
    详解Axure的Masters功能
    详解使用Axure 制作Tab切换功能
    产品经理的初识
    作为产品经理--如何写好PRD文档
  • 原文地址:https://www.cnblogs.com/kkzxak47/p/2948608.html
Copyright © 2011-2022 走看看