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

2つの数値の合計。1つの数値はC++では数字の配列として表されます。


この問題では、2つの数値が与えられ、そのうちの1つは数字の配列を使用して表されます。私たちの仕事は、1つの数字が数字の配列として表される2つの数字の合計を見つけるプログラムを作成することです。

問題を理解するために例を見てみましょう

Input: n = 213, m[] = {1, 5, 8, }
Output: 371
Explanation: 213 + 158 = 371

この問題を解決するために、配列のどの要素の番号から1桁ずつ単純に数字を入力します。数のlsbが配列の(n-1)番目の要素に追加されます。キャリーは次の合計のために伝播されます。

ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;
void addNumbers(int n, int size, int *m){
   int carry = 0;
   int sum = 0;
   for(int i = size-1; i >= 0; i--){
      sum = (n%10) + m[i] + carry;
      n /= 10;
      carry = sum/10;
      m[i] = sum%10;
   }  
}
int main() {
   int n= 679;
   int m[] = {1, 9, 5, 7, 1, 9};
   int size = sizeof(m)/sizeof(m[0]);
   cout<<"The sum of two numbers where one number is represented as array of digits is ";
   addNumbers(n, size, m);
   for(int i = 0; i < size; i++)
      cout<<m[i];
}

出力

The sum of two numbers where one number is represented as array of digits is 196398

  1. 数値がC++で2つの三角数の合計として表現できるかどうかを確認します

    このセクションでは、1つの数を2つの三角数の合計として表現できるかどうかを確認します。三角数は以下のようになります- 例から、1、3、6、10はいくつかの三角数であることがわかります。数N(たとえば16)を2つの三角数(6、10)の合計として表す必要があります。 アプローチは非常に簡単です。 N未満のすべての三角数を取得する必要があります。これらの値からセットを作成します。ここで、集合からXと言う数を取り、N – Xが集合に存在するかどうかを確認する必要があります。そうすると、Xは2つの三角数の合計として表すことができます。 例 #include <iostream> #

  2. C ++の合計配列パズル?

    ここでは、配列に関連する1つの興味深い問題を確認します。 n個の要素を持つ配列があります。 n個の要素の別の配列を作成する必要があります。ただし、2番目の配列のi番目の位置は、i番目の要素を除く最初の配列のすべての要素の合計を保持します。そして、1つの制約は、この問題では減算演算子を使用できないことです。 減算演算を使用できれば、すべての要素の合計を取得し、最初の配列のi番目の要素を減算して、2番目の配列のi番目の場所に格納することで、この問題を簡単に解決できます。 ここでは、毎回要素を追加することでこれを解決し、0..n-1のiについては、位置iの要素を無視します。ポイントを得るためのア