首頁  >  文章  >  後端開發  >  在 C 程式中將數字加一表示為數字數組?

在 C 程式中將數字加一表示為數字數組?

PHPz
PHPz轉載
2023-09-07 12:49:171037瀏覽

Adding one to number represented as array of digits in C Program?

在這個部分,我們將看到一個有趣的問題。假設給定一個數字。我們需要將這個數字增加1。這是一個非常簡單的任務。但是在這裡,我們將把數字作為一個陣列放置。該數字的每個數字都被放置為數組的一個元素。如果數字是512,那麼它將被儲存為{5, 1, 2}。而且我們還必須使用遞歸方法來增加數字。讓我們看看演算法以獲得清晰的思路。

演算法

increment(arr, n, index) −

Initially the default value of index is 0
begin
   if index < n, then
      if arr[index] < 9, then
         arr[index] := arr[index] + 1
      else
         arr[index] := 0
         increment(arr, n, index + 1)
   end if
   if index = n, then
      arr[n] := 1
      n := n + 1
   end if
end

範例

#include <iostream>
#include <cmath>
#define MAX 20
using namespace std;
void increment(int num_arr[], int &n, int index = 0){
   if(index < n){
      if(num_arr[index] < 9){ //if digit is less than 9, add 1
         num_arr[index]++;
      }else{ //otherwise increase number recursively
         num_arr[index] = 0;
         increment(num_arr, n, index+1);
      }
   }
   if(index == n){
      num_arr[n] = 1; //add extra carry
      n++; //increase n
   }
}
void dispNumber(int num_arr[], int n){
   for(int i = n-1; i>= 0; i--){
      cout << num_arr[i];
   }  
   cout << endl;
}
int numToArr(int num_arr[], int number){
   int i = 0;
   int n = log10(number) + 1;
   for(int i = i; i< n; i++){
      num_arr[i] = number % 10;
      number /= 10;
   }
   return n;
}
main() {
   int number = 1782698599;
   int num_arr[MAX];
   int n = numToArr(num_arr, number);
   cout << "Initial Number: "; dispNumber(num_arr, n);
   increment(num_arr, n);
   cout << "Final Number: "; dispNumber(num_arr, n);
}

輸出

Initial Number: 1782698599
Final Number: 1782698600

以上是在 C 程式中將數字加一表示為數字數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除