【CSDN编程挑战】高斯公式

来源:互联网 发布:英文seo工程师 编辑:程序博客网 时间:2024/05/29 19:16
<span style="color: rgb(255, 0, 0); font-size: 24px;">这个题目已经在电脑上运行并且测试通过了,不知为何提交到网上总是报错(输出结果错误)?希望高手可以不吝赐教,指正错误。</span>///*高斯公式题目详情:高斯在上小学时发明了等差数列求和公式:1+2+..+100=5050。现在问题在于给你一个正整数n,问你他可以表示为多少种连续正整数之和?(自身也算)。输入格式:多组数据,每组数据一行,一个正整数n。 0<n<2000000000输出格式:每组数据一行,包含一个正整数,表示结果。答题说明:输入样例5120输出样例:24解释:5=2+3=5120=1+2+...+15=22+23+24+25+26=39+40+41=120*///#include "stdafx.h"#include <iostream>//#include <fstream>using namespace std;int main(){int n;int sum;int counter;//ifstream cin("a.txt");while(cin>>n){counter=0;for(int i=1;i<=(n/2+1);i++){sum=0;//initial everytimefor(int j=i;j<=(n/2+1);j++){if(sum<n)sum+=j;if(sum>n){ sum=0;break;}if(sum==n){counter++;sum=0;break;//得到结果后,}}}if(n==2||n==1||counter==0)//1和2以及只有本身的数要单独考虑,只有本身一种情况cout<<1<<endl;else if(counter!=0)cout<<counter+1<<endl;}//system("pause");return 0;}


0 0
原创粉丝点击