題目連結: https://zerojudge.tw/ShowProblem?problemid=b003

# 解題思路

第一步會很直覺地想到:先將 1 到 n 的所有數字相加起來,之後,再調整誰要改負的就好
但是,將一個數字 + X 轉成 - X 對總數而言,就是 - 2X,就是說一定會是減掉偶數的意思
那這樣的話,只要想辦法找到 1 到 n 的總和 與 k 的差值是偶數的狀況就好了

# 程式碼

#include <bits/stdc++.h>
using namespace std;
int main(){
    long long k;
    while(cin>>k){
        long long sum = 0;
        long long cnt = 0;
        if(k<0) k = -k;
        while(sum<k)
            sum+= ++cnt;
        while((sum - k )& 1)
            sum += ++cnt;
        cout<<cnt<<endl;
    }
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay