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

配列として表される数に1を追加します(再帰的アプローチ)?


数字の配列として表される非負の数の集合である配列が与えられた場合、その数に1を加算します(数字で表される数をインクリメントします)。桁は、最上位桁が配列の最初の要素になるように格納されます。

数字で表される数字に1を加えるには

  • 配列の最後から与えられた場合、加算は最後の4から5への丸めを意味します。

  • 最後の要素が9の場合、それを0にして、キャリー=1にします。

  • 次の反復では、キャリーをチェックし、それが10に追加される場合は、ステップ2と同じようにします。

  • キャリーを追加した後、次の反復のためにキャリー=0にします。

  • ベクトルがベクトルサイズを追加および増加する場合は、最初に1を追加します。

配列に要素[7、6、3、4]が含まれているとすると、配列は10進数1234を表すため、これに1を加算すると7635になります。したがって、新しい配列は[7、6、3、5]になります。

>

Input: [7, 6, 9, 9]
Output: [7, 7, 0, 0]
Input: [4, 1, 7, 8, 9]
Output: [4, 1, 7, 9, 0]

説明 配列の最後の要素が9未満の場合は、1を追加します。要素が9の場合は、0にして、配列の残りの要素に対して繰り返します。

#include <iostream>
using namespace std;
void sum(int arr[], int n) {
   int i = n;
   if(arr[i] < 9) {
      arr[i] = arr[i] + 1;
      return;
   }
   arr[i] = 0;
   i--;
   sum(arr, i);
   if(arr[0] > 0) {
      cout << arr[0] << ", ";
   }
   for(int i = 1; i <= n; i++) {
      cout << arr[i];
      if(i < n) {
         cout << ", ";
      }
   }
}
int main() {
   int n = 4;
   int arr[] = {4, 1, 7, 8, 9};
   sum(arr, n);
   return 0;
}

  1. 合計がC++で均等になるように、配列に最小数を追加しますか?

    いくつかの番号を持つ配列があるとします。要素の合計を均等にするために、それに追加される数値の最小数を指定する必要があります。数値は0より大きくなければなりません。したがって、要素の合計が奇数の場合は1を加算しますが、合計がすでに偶数の場合は2を加算して偶数にします。 アルゴリズム addMinNumber(arr) begin    s := 0    for each element e from arr, do       s := e + s    done    if s i

  2. コレクション要素をC#の配列にコピーする

    コレクション要素を配列にコピーするためのコードは次のとおりです- 例 using System; using System.Collections.ObjectModel; public class Demo {    public static void Main(){       Collection<string> col = new Collection<string>();       col.Add("One");       c