zoukankan      html  css  js  c++  java
  • 数据结构实训(一)--- 2012年北航研究生入学考试机试题

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

    #include<iostream>
    #include<vector>
    using namespace std;
    
    int main()
    {
    
        int x;
        cin >> x;   // 需要判断的值
        int flag = 0;   // 判断有没有分解组合的标记
        vector<int> divNumber;  // 声明向量用来存储每次循环所加的值
    
        for(int n=1; n<x; n++)  // 从1 -> x-1 开始迭代
        {
            int sum = 0;        // 计算向量中所存数之和
            for(int i=n; i<x; i++)
            {
                divNumber.push_back(i);
                sum = sum + i;
                if(sum == x)    // 所存数满足条件
                {
                    for(int k=0; k<divNumber.size(); k++) // 输出存取数
                    {
                        cout << divNumber[k] << " ";
                    }
                    flag = 1;
                    cout << endl;
                }
                else if( sum > x) // 所存数之和比判断数大,则该次存取不满足
                {
                    divNumber.clear();
                }
            }
        }
        if(flag == 0){
            cout << "NONE" << endl;
        }
    }

    个人总结

      关于标准库vector的应用。

  • 相关阅读:
    1063. Set Similarity
    A1047. Student List for Course
    A1039. Course List for Student
    最大公约数、素数、分数运算、超长整数计算总结
    A1024. Palindromic Number
    A1023. Have Fun with Numbers
    A1059. Prime Factors
    A1096. Consecutive Factors
    A1078. Hashing
    A1015. Reversible Primes
  • 原文地址:https://www.cnblogs.com/DullRabbit/p/12558580.html
Copyright © 2011-2022 走看看