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

C++で「n」を奇数の整数の合計として表現する方法を数える


入力として整数nを指定します。目標は、奇数の整数の合計として「n」を表すことができる方法の数を見つけることです。たとえば、nが3の場合、合計(1 + 1 + 1)および(3)として表すことができるため、合計2つの方法があります。

入力

n=6

出力

Count of ways to express ‘n’ as sum of odd integers are: 8

説明

The ways in which we can express ‘n’ as sum of odd integers −
1. 1+1+1+1+1+1
2. 3+1+1+1
3. 1+3+1+1
4. 1+1+3+1
5. 1+1+1+3
6. 3+3
7. 1+5
8. 5+1

入力

n=9

出力

Count of ways to express ‘n’ as sum of odd integers are: 34

説明

The some of the ways in which we can express ‘n’ as sum of odd integers:
1. 1+1+1+1+1+1+1+1+1
2. 3+3+3
3. 5+3+1
4. 7+1+1
5. ….and other such combinations

以下のプログラムで使用されるアプローチは次のとおりです

このアプローチでは、n-1番目とn-2番目の数値である以前の数値からの奇数の整数の合計として数値を表す方法を確認します。ウェイはway(n-1)+ Ways(n-2)になります。

  • 入力として整数nを取ります。

  • 関数odd_ways(int n)は数値を受け取り、「n」を奇数の整数の合計として表現する方法の数を返します。

  • 長さn+1の配列arrを取り、奇数の整数の合計として数値を表すためのカウント方法を格納します。

  • 番号0の場合、そのような方法はないので、arr[0]を0に設定します。

  • 1番の場合、方法は1つしかないため、arr[1]を1に設定します。

  • 残りの数値については、2からnの間のiに対してarr [i-1] +arr[i-2]を使用してarr[i]を設定できます。

  • 最後に、nが奇数の整数の合計として表される方法の数についてarr[n]があります。

  • 結果としてarr[n]を返します。

#include<iostream>
using namespace std;
int odd_ways(int n){
   int arr[n+1];
   arr[0] = 0;
   arr[1] = 1;
   for(int i = 2; i <= n; i++){
      arr[i] = arr[i-1] + arr[i-2];
   }
   return arr[n];
}
int main(){
   int n = 6;
   cout<<"Count of ways to express ‘n’ as sum of odd integers are: "<<odd_ways(n);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Count of ways to express ‘n’ as sum of odd integers are: 8

  1. C++では「d」桁の正の整数を0で数えます。

    このチュートリアルでは、数字が0の「d」桁の数字を見つけるプログラムについて説明します。 このために、番号「d」が提供されます。私たちのタスクは、「d」桁とその桁の1つとして0を持つ正の整数の数を数えて出力することです。 例 #include<bits/stdc++.h> using namespace std; //counting the number of 'd' digit numbers int count_num(int d) {    return 9*(pow(10,d-1) - pow(9,d-1)); } int main(

  2. C++でゼロまでのN個の一意の整数の合計を見つける

    整数nがあるとします。合計が0になるように、n個の一意の整数を含む配列を返す必要があります。したがって、入力がn =5の場合、可能な出力の1つは[-7、-1、1、3、4] これを解決するには、次の手順に従います- 最終的な答えとして配列Aを取り、x:=0を取ります 0からn–2の範囲のiの場合 A [i] =(i + 1) x:=x + i + 1 A [n – 1] =x Aを返す 例 理解を深めるために、次の実装を見てみましょう- #include <bits/stdc++.h> using namespace std; void print_vector