C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++での連続した数値の合計


正の整数Nがあるとすると、連続する正の整数の合計として、いくつの異なる方法で書くことができるかを見つける必要がありますか?

したがって、入力が10の場合、出力は3になります。これは、10を5+5および7+3として表すことができるため、2つの異なる方法があります。

これを解決するには、次の手順に従います-

  • ret:=1

  • 初期化i:=2の場合(iを1増やします)、実行-

    • 合計:=(i *(i + 1))/ 2

    • 合計>Nの場合、-

      • ループから出てきます

    • rem:=N-合計

    • ret:=ret +(rem mod iが0の場合は1、それ以外の場合は0)

  • retを返す

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int consecutiveNumbersSum(int N) {
      int ret = 1;
      for(int i = 2; ; i++){
         int sum = (i * (i + 1)) / 2;
         if(sum > N) break;
         int rem = N - sum; ret += (rem % i == 0);
      }
      return ret;
   }
}; main(){
   Solution ob;cout << (ob.consecutiveNumbersSum(10));
}

入力

10

出力

2

  1. 自然数の合計を計算するC++プログラム

    自然数は1から始まる正の整数です。 自然数のシーケンスは-です 1, 2, 3, 4, 5, 6, 7, 8, 9, 10…… 最初のn個の自然数の合計は、forループまたは式を使用して計算できます。 これらの両方の方法を指定するプログラムは次のとおりです- forループを使用した自然数の合計。 forループを使用してn個の自然数の合計を計算するプログラムは次のとおりです。 例 #include<iostream> using namespace std; int main() {    int n=5, sum=0, i;

  2. 2つの数値を追加するC++プログラム

    加算は基本的な算術演算です。 2つの数値を加算するプログラムは、2つの数値の加算を実行し、それらの合計を画面に出力します。 2つの数字の加算を示すプログラムは次のとおりです- 例 #include <iostream> using namespace std; int main() {    int num1=15 ,num2=10, sum;    sum = num1 + num2;    cout<<"Sum of "<<num1<<" and &q