題目連結: 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; | |
} | |
} |