Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tambahkan 1 pada nombor yang diwakili oleh tatasusunan (kaedah rekursif)

Tambahkan 1 pada nombor yang diwakili oleh tatasusunan (kaedah rekursif)

王林
王林ke hadapan
2023-08-28 17:17:061655semak imbas

Tambahkan 1 pada nombor yang diwakili oleh tatasusunan (kaedah rekursif)

Diberi tatasusunan yang merupakan himpunan nombor yang diwakili oleh nombor bukan negatif, tambah nombor itu dengan 1 (naikkan nombor yang diwakili oleh nombor itu). Nombor disimpan sedemikian rupa sehingga digit tertinggi ialah elemen pertama tatasusunan.

Untuk menambah 1 pada nombor yang diwakili oleh nombor

  • bermula dari hujung tatasusunan, penambahan bermaksud membundarkan nombor terakhir 4 hingga 5.

  • Jika elemen terakhir ialah 9, tukar kepada 0 dan bawa = 1.

  • Untuk lelaran seterusnya, semak pembawa dan jika ia menambah 10, lakukan perkara yang sama seperti langkah 2.

  • Selepas menambah pembawa, tetapkan pembawa kepada 0 untuk lelaran seterusnya.

  • Jika vektor ditambah dan saiz vektor ditambah, tambahkan 1 pada permulaan.

Katakan tatasusunan mengandungi elemen [7, 6, 3, 4], maka tatasusunan itu mewakili nombor perpuluhan 1234, jadi penambahan 1 pada nombor ini akan memberi kita 7635. Jadi tatasusunan baharu ialah [7, 6, 3, 5].

Contoh

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

Penjelasan Tambahkan 1 pada elemen terakhir tatasusunan jika kurang daripada 9. Jika elemen ialah 9, tukarkannya kepada 0 dan ulangi untuk baki elemen tatasusunan.

Contoh

Penjelasan Jika elemen terakhir tatasusunan kurang daripada 9, tambah 1 padanya. Jika elemen ialah 9, tukarkannya kepada 0 dan lakukan operasi rekursif pada elemen yang tinggal dalam tatasusunan.

Contoh

#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;
}

Atas ialah kandungan terperinci Tambahkan 1 pada nombor yang diwakili oleh tatasusunan (kaedah rekursif). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam