首页 > 代码库 > 庞果网之高斯公式
庞果网之高斯公式
【题目】
题目详情
高斯在上小学时发明了等差数列求和公式:1+2+..+100=5050。如今问题在于给你一个正整数n,问你他能够表示为多少种连续正整数之和?(自身也算)。
输入格式:
多组数据,每组数据一行,一个正整数n。 0<n<2000000000
输出格式:
每组数据一行,包括一个正整数,表示结果。
答题说明
输入例子
5
120
输出例子:
2
4
解释:
5=2+3=5
120=1+2+...+15=22+23+24+25+26=39+40+41=120
【分析】
详细详见:点击打开链接
【代码】
/********************************* * 日期:2014-04-26 * 作者:SJF0115 * 题目: 高斯公式 * 来源:http://hero.csdn.net/Question/Details?ID=537&ExamID=532 * 结果:AC * 来源:庞果网 * 总结: **********************************/ #include <iostream> #include <stdio.h> using namespace std; int main(){ int n,i; while(scanf("%d",&n) != EOF){ int small = 1; int big = 2; int mid = (1 + n) / 2; int count = 0; int cur = small + big; while(small < mid){ //cur = n if(cur == n){ count ++; } //cur > n while(cur > n && small < mid){ cur -= small; small ++; if(cur == n){ count++; } }//while //cur < n big ++; cur += big; }//while printf("%d\n",count+1); } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。