Menambah satu pada nombor yang diwakili sebagai tatasusunan digit dalam Program C?

PHPz
Lepaskan: 2023-09-07 12:49:17
ke hadapan
1019 orang telah melayarinya

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

Dalam bahagian ini, kita akan melihat soalan yang menarik. Katakan nombor diberikan. Kita perlu menambah bilangan ini sebanyak 1. Ini adalah tugas yang sangat mudah. Tetapi di sini, kita akan meletakkan nombor sebagai tatasusunan. Setiap digit nombor diletakkan sebagai elemen tatasusunan. Jika nombornya ialah 512, maka ia akan disimpan sebagai {5, 1, 2}. Dan kita juga perlu menggunakan kaedah rekursif untuk menambah bilangan. Mari lihat algoritma untuk mendapatkan idea yang jelas.

Algoritma

kenaikan(arr, n, indeks) −

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
Salin selepas log masuk

Contoh

#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);
}
Salin selepas log masuk

Output

Initial Number: 1782698599
Final Number: 1782698600
Salin selepas log masuk

Atas ialah kandungan terperinci Menambah satu pada nombor yang diwakili sebagai tatasusunan digit dalam Program C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!