poj1032 数论

2019-11-02  本文已影响0人  暖昼氤氲
/*
Time:2019.11.2
Author: Goven
type:数论:整数拆分 
err:
ref:不会:https://blog.csdn.net/aidway/article/details/50896811
*/
#include<iostream>

using namespace std;

int main()
{
    int n, x, i, sum;
    cin >> n;
    for (i = 2, sum = 2; sum <= n;) {
        i++;
        sum += i;
    }
    i--;
    
    x = n - (i + 2) * (i - 1) / 2;
    int t = i - x + 1;
    if (x == i) t++;
    
    for (int j = 2; j < t; j++) {
        cout << j << " ";
    }
    for (int j = t + 1; j <= i; j++) {
        cout << j << " ";
    }
    
    if (x == i) cout << i + 2 << " " << endl;//err1:最后结尾也要有空格 
    else if (x > 0) cout << i + 1 << " " << endl;//err2:这里漏了判断条件,所以n=5时错误 
    return 0;
}


上一篇 下一篇

猜你喜欢

热点阅读