zrq495
www.zrq495.com

当k=0时,n=3;

当k!=0时,找最小的n,使sum=1+2+3+....+n >= |k|,且sum为偶数。

代码:

#include<iostream>

using namespace std;

int main()
{
    int T, i, j, k, sum, p;
    cin >> T;
    while(T--)
    {
        sum=0;
        cin >> k;
        if (k < 0) k=-k;
        if (!k) cout << "3" << endl;
        else
        {
            i=0;
            while (sum<k)
            {
                i++;
                sum+=i;
            }
            p=sum-k;
            if (p % 2 == 0) cout << i << endl;
            else
            {
                for (j=i+1; ; j++)
                {
                    p+=j;
                    if (p % 2 == 0)
                    {
                        cout << j << endl;
                        break;
                    }
                }
            }
        }
        if (T) cout << endl;
    }
    return 0;
}
posted on 2012-07-24 20:56  zrq495  阅读(328)  评论(2编辑  收藏  举报