标签:
给定k,问由特定的式子得到k的最小值的n,因为式子 ? 1 ? 2 ? ... ? n = k 中问号可以变成加号,或者减号,如果全部为加号那么此时需要的n是最小的,但是要是中途有一个加号变成了减号,结果都是减少了2的偶数倍,所以只要找出 1+2+3+..+n>=k的n,然后判断n-k是否是偶数,不是n继续增大,直到找到为止。
#include<cstdio> int main() { int t,n,i,j,s=0; scanf("%d",&t); while(t--) { scanf("%d",&n); if(n<0) n=-n; s=0; for(i=1;;i++) { s+=i; if(s>=n&&(s-n)%2==0) { j=i; break; } } printf("%d\n",j); if(t) printf("\n"); } return 0; }
UVA - 10025 The ? 1 ? 2 ? ... ? n = k problem
标签:
原文地址:http://blog.csdn.net/u012773338/article/details/42240601