C++计算总和为n的连续列表个数的程序
假设我们有一个数字 n,我们必须找到总和为 n 的正连续值列表的数量。
所以,如果输入像 n = 15,那么输出将是 4,因为可能的列表是:[1, 2, 3, 4, 5], [4, 5, 6], [7, 8],和 [15]。
为了解决这个问题,我们将按照以下步骤操作:
开始:= 1, 结束:= 1, x := (n + 1)
总和:= 0
而结束 <= x,做:
如果 sum 与 n 相同,则:
sum := sum - 开始
(开始增加 1)
(计数增加 1)
总和:=总和+结束
当 sum >= n 时,请执行以下操作:
(增加1)
返回计数 + 1
让我们看下面的实现来更好地理解:
示例
#includeusing namespace std;
int solve(int n) {
int begin=1,end=1,x=(n+1)/2,count=0;
long int sum=0;
while(end <= x){
sum += end;
while(sum >= n){
if(sum == n)
count++;
sum -= begin;
begin++;
}
end++;
}
return count+1;
}
main(){
cout << (solve(15));
}
输入
15输出结果
4
以上是 C++计算总和为n的连续列表个数的程序 的全部内容, 来源链接: utcz.com/z/357999.html