UVA10025(The ? 1 ? 2 ? ... ? n = k problem)
来源:互联网 发布:大数据修炼系统醉寒 编辑:程序博客网 时间:2024/06/10 18:43
题意:±1 ± 2 ± 3 ±…± n = k , 找出满足条件的最小 n 。。
解析:
必然存在整数 x(1=< x <= n)满足:
当 s1 = 1+2+3+...+x+..+n >= k时,有 s2 = 1+2+3+...-x+..+n == k,即多出的x肯定在1~n之间。
s1 - s2 = s1 - k = 2x
所以,我们想求最小的n,也就是求最小的满足条件的s1,而它与k的差必为偶数,剩下的暴力找就可以了。
通过求和公式,求出前n个和比k大的n的最小值,然后判断前n个数的和与k的值的差是否为偶数,如果为偶数则表示该n为
最小的所需个数,因为如果差为偶数,则只需将前n个数的几个数前的符号改为减号,就可以得到k,如果不为偶数,则n的
值加一,重复以上判断。直到出现符合以上判断的n的出现,则是最小的n的值。
#include <iostream>#include <string.h>#include <stdio.h>#include <math.h>using namespace std;int main(){ int t,k; int flag=0; scanf("%d",&t); while(t--) { scanf("%d",&k); if(flag>0) puts(""); flag++; if(k<0) k=-k; int sum=0; for(int i=1;;i++) { sum+=i; if(sum>=k&&(sum-k)%2==0) { printf("%d\n",i); break; } } } return 0;}
- UVA10025 The ? 1 ? 2 ? ... ? n = k problem
- UVA10025(The ? 1 ? 2 ? ... ? n = k problem)
- uva10025 The ? 1 ? 2 ? ... ? n = k problem
- The ? 1 ? 2 ? ... ? n = k problem
- The ? 1 ? 2 ? ... ? n = k problem
- The ? 1 ? 2 ? ... ? n = k problem
- The ? 1 ? 2 ? ... ? n = k problem
- The ? 1 ? 2 ? ... ? n = k problem
- The ? 1 ? 2 ? ... ? n = k problem
- The ? 1 ? 2 ? ... ? n = k problem
- UVa 10025 - The ? 1 ? 2 ? ... ? n = k problem
- uva 10025 The ? 1 ? 2 ? ... ? n = k problem
- Uva 10025 - The ? 1 ? 2 ? ... ? n = k problem
- uva 10025 The ? 1 ? 2 ? ... ? n = k problem
- uva 10025 - The ? 1 ? 2 ? ... ? n = k problem
- UVa 10025 - The ? 1 ? 2 ? ... ? n = k problem
- UVA - 10025 :The ? 1 ? 2 ? ... ? n = k problem
- 10025 - The ? 1 ? 2 ? ... ? n = k problem
- 远程操作linux网络设置(一)-通过代理服务器上网
- 黑马程序员_基础加强_对接收数组参数的成员方法进行反射
- 中国软件开发工程师之痛 by 李云~
- JS原型和原型链
- Java学习之道:正则表达式(二)
- UVA10025(The ? 1 ? 2 ? ... ? n = k problem)
- 装箱问题 vs 背包问题
- 虚函数——《C++编程风格》读书笔记(二)
- 求数组元素的乘积
- 记一次内核模块内存越界排查
- POJ 1029 False coin
- 黑马程序员---异常
- python核心编程第七章习题解答(1)
- Common Subsequence(hdu1159(LCS))