南阳oj 215 Sum
描述
Consider the natural numbers from 1 to N. By associating to each number a sign (+ or -) and calculating the value of this expression we obtain a sum S. The problem is to determine for a given sum S the minimum number N for which we can obtain S by associating signs for all numbers between 1 to N.
For a given S, find out the minimum value N in order to obtain S according to the conditions of the problem.
输入
The input consists N test cases.
The only line of every test cases contains a positive integer S (0< S <= 100000) which represents the sum to be obtained.
A zero terminate the input.
The number of test cases is less than 100000.
输出
The output will contain the minimum number N for which the sum S can be obtained.
样例输入
3
12
0
样例输出
2
7
题意:给定一个数n,在1+2+3+4+…+k中,求随意改变加减号能使其和(差)正好为n的k为多少。
分析:每次累加i:
如果sum小于n则无论如何也不可能达到题意;
如果sum正好等于n则累加到这个k正好为答案;
如果sum大于n时,则需要把前面的加号改为减号:如果改为-1,结果就减2,如果改为-2,结果就减4,以此类推,可以看出只要sum-n为偶数,则此时可以改sum结果为n,得答案。
以下附上代码:
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<stack>
#include<math.h>
using namespace std;
int main()
{int sum;while(~scanf("%d",&sum)&&sum){for(int i=1;i<500;i++){int s=(i*(i+1))/2;if(s==sum){printf("%d\n",i);break;}else if(s>sum&&(s-sum)%2==0){printf("%d\n",i);break;}elsecontinue;}}return 0;
}
南阳oj 215 Sum相关推荐
- 南阳oj a+b问题
#include<iostream> using namespace std; int main () { int a,b; cin>>a>>b; cout< ...
- NYOJ 215 Sum
Sum 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 Consider the natural numbers from 1 to N. By associating ...
- LeetCode OJ - Path Sum II
题目: Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the give ...
- 南阳OJ独木舟上的旅行
/*独木舟上的旅行 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别. 一条独木舟最多只能乘坐两个人 ...
- 南阳oj入门题-蛇形填数
/** 蛇形填数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 ...
- 南阳oj 题目722 数独
数独 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 数独是一种运用纸.笔进行演算的逻辑游戏.玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一 ...
- 多人过河问题C语言贪心算法,南阳oj贪心算法之过河问题
/** 过河问题 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边.如果不借助手电筒的话,大家是无论如何也不敢过桥去的 ...
- 【ACM】杭电OJ 4704 Sum (隔板原理+组合数求和公式+费马小定理+快速幂)
http://acm.hdu.edu.cn/showproblem.php?pid=4704 1.隔板原理 1~N有N个元素,每个元素代表一个1.分成K个数,即在(N-1)个空挡里放置(K-1)块隔板 ...
- 南阳oj 1的个数
#include<iostream> #include<math.h> using namespace std; int main () { int t; cin>> ...
- 南阳OJ 16 矩形嵌套
描写叙述 有n个矩形,每个矩形能够用a,b来描写叙述,表示长和宽. 矩形X(a,b)能够嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度). ...
最新文章
- 程序员MM的自白:磨人小妖精之安卓碎片化
- 阿里团队最新实践:如何解决大规模分类问题?
- Python面向对象基础:设置对象属性
- 卷积神经网络初探 | 数据科学家联盟 http://dataunion.org/20942.html
- BZOJ 4326 NOIP2015 运输计划(树上差分+LCA+二分答案)
- 计算机系统是连续系统,连续系统的计算机模拟
- lua math.random()
- 东欧视频游戏市场概况
- python蓝牙通信_python实现蓝牙通信
- 用c语言编写一个汇编编译器,【提问】最早的汇编语言编译器如何诞生?
- 驱动ST7789 240*240 TFT屏 制作分光棱镜显示要点总结(镜像后图片颜色R、B对调了,使用PS修改图片)
- SAS的win10 64位安装过程
- android自动循环播放视频,Android编程实现VideoView循环播放功能的方法
- widows 程序无响应判断,程序假死状态
- 微软全息眼镜Hololens开发者版发货 售19000元
- java pem 签名_如何在Java中验证PEM格式证书
- 5G网速比4G快那么多,是否意味着4G即将淘汰?
- MI200e电力线通讯
- 用php输出每一天的时间安排表格_php输出日历表格(一个简单的日历)
- bresenham算法模拟游戏中的追踪路线
热门文章
- html5多重阴影怎么设置,使用CSS3 box-shadow属性实现按钮的多重阴影效果
- 大树体验云受邀参加CMO价值营销峰会 助力品牌新增长
- GBK UTF-8 ASCLL url编码集合
- 在线旅游中需要上传获取那些信息,对接旅行社护照录入系统
- 利用Android SAF(存储访问框架)进行游戏反和谐(伊甸园的骄傲)/Android data目录的访问限制
- 游戏虚拟引擎自学_自学5个小时,如何做出一个游戏?
- TCC(TinyC)编译器汉化(中文编译器、汉语编程)之五:语法分析下
- 利用Python制作本地Excel的查询与生成的程序
- 用css hack解决IE5 IE5.5 IE6 Firefox浏览器兼容性
- 【案例学习】最大锁具制造商怎样使用 Docker?