C语言编程题:求1000以内连续和为1000的整数。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编程题:求1000以内连续和为1000的整数。相关的知识,希望对你有一定的参考价值。
大家帮帮忙哈!
int j=1,sub=0;此是找出了1000以后所有的连续和为1000的整数组合。for(int i=1;i<=1000;i++) sub=sub+i; if(sub>=10000) if(sub==10000) 输出到j的值和i的值 那么j到i的值之间的连续加起来的和就是10000。 i=j++; 参考技术A int s=0;for(int i=1;i<=1000;i++)
s=0;
for(int j=i;j<=1000;j++)
s+=j;
if(s==1000)
printf("%d %d", i, j-i);
break;
else if(s>1000)
break;
参考技术B 198、199、200、201、202
剑指offer-面试题57_2-和为s的连续正数序列-穷举法
/* 题目: 输入一个整数s,输出所有和为s的连续整数序列。 */ /* 思路: 穷举法。 */ #include<iostream> #include<cstring> #include<vector> #include<algorithm> #include<map> using namespace std; vector<vector<int> > FindContinuousSequence(int sum) { vector<vector<int> > res; int half = sum / 2; int ceil_half = (sum+1) / 2; for(int i = 1; i <= half; i++){ int curr = i; for(int j = i + 1; j <= ceil_half; j++){ curr += j; if(curr == sum){ vector<int> sequence; for(int index = i; index <= j; index++){ sequence.push_back(index); } res.push_back(sequence); i++; break; } else if(curr > sum){ break; } } } return res; } int main(){ vector<vector<int> > res = FindContinuousSequence(15); for(int i = 0; i < res.size(); i++){ for(int j = 0; j < res[i].size(); j++){ cout<<res[i][j]<<" "; } cout<<endl; } }
以上是关于C语言编程题:求1000以内连续和为1000的整数。的主要内容,如果未能解决你的问题,请参考以下文章
求N以内的所有完数 C语言 看清楚题再回答!!! 请经过测试以后再回答!!!