UVA10025连续自然数添上正负号得到固定的数
来源:互联网 发布:淘宝 苹果证书 编辑:程序博客网 时间:2024/06/10 04:12
这题自己想的是找出大于k的最小的n使n*(n+1)>=k即可,如果n*(n+1)-k为偶数肯定可以把后面的一个数变成负号即可,
如果是奇数则可以添加俩项一正一副把差值变成偶数,可是却忽略了如果n原本是偶数只需要再添加一个数就可以把差值变成
偶数。
#include<cstdio>#include<iostream>#include<vector>#include<queue>#include<algorithm>#include<string>#include<cstdlib>#include<map>#include<set>#include<cmath>#include<cstring>#include<cctype>#include<climits>#include<memory>#include<climits>using namespace std;#define LL long long#define INT (1<<31)-1;const int maxn=1000;int main(){ LL cas; cin>>cas; while(cas--) { LL k; cin>>k; k=abs(k); int ans; LL i; for(i=1;i<=100000;i++) { if(i*(i+1)/2>=k) break; } LL sum=i*(i+1)/2; if((sum-k)%2) { if(i%2) cout<<i+2<<endl; else cout<<i+1<<endl; } else cout<<i<<endl; if(cas) cout<<endl; } return 0;}
0 0
- UVA10025连续自然数添上正负号得到固定的数
- 一个数的分解连续的自然数
- Java从一个连续的自然数区间中,随机获取几个数(这几个数是固定的,一种抽奖算法及节省空间地保存结果)
- 连续的自然数相加
- 四个连续的自然数
- python中整数除法的正负号
- 求连续自然数的和
- 求连续自然数的积
- 连续自然数的阶乘求和
- leetcode_442. Find All Duplicates in an Array 找数组中出现两次的数,正负号标记法
- 等量正负号段落
- 有正负号的大整数的乘法
- 一个数拆分成连续自然数的和(只考加法的面试题)
- 一个数拆分成连续自然数的和(只考加法的面试题)
- objective c 中方法前面正负号的意义
- 编程之美2.21 什么样的数不能写成连续N个自然数之和
- 十个最小的连续自然数,并且这十个数都为合数(非素数)
- UVA10025
- 2015年多校联合训练第四场(Problem Killer)hdu5328
- 根据数据库动态创建CheckBox
- 黑马程序员-C语言中static、extern、typedef、enum使用的注意事项
- VVDocumenter Xcode6.4安装步骤(非常实用)
- Android的四种监听事件处理方式
- UVA10025连续自然数添上正负号得到固定的数
- css页面布局基础
- HDU 3829 — Cat VS Dog 最大独立集
- Fraction类(分数)实现分数的加减乘除, ⽐比较⼤大⼩小、约分等⽅方法
- hdu5336 多校联合第四场1010 模拟+bfs优先队列
- 鸟哥的私房菜学习笔记 重要的Bash Shell的操作环境
- Windows7解决VBoxDD.dll不能加载
- Integer super重写重载public4个关键字
- hdu 3790 最短路径问题 最短路Dijkstra