Rumah > pembangunan bahagian belakang > C++ > Cari secara rekursif jumlah digit bagi n^x, di mana n dan x kedua-duanya sangat besar, dilaksanakan menggunakan C++

Cari secara rekursif jumlah digit bagi n^x, di mana n dan x kedua-duanya sangat besar, dilaksanakan menggunakan C++

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-09-11 08:29:02
ke hadapan
818 orang telah melayarinya

Cari secara rekursif jumlah digit bagi n^x, di mana n dan x kedua-duanya sangat besar, dilaksanakan menggunakan C++

Kami diberi pembolehubah integer positif "num" dan "x". Tugasnya adalah untuk mengira secara rekursif num^x dan kemudian menambah digit nombor yang terhasil sehingga mencapai satu digit, digit tunggal yang terhasil akan diberikan sebagai output.

Mari kita lihat pelbagai senario input-output untuk ini -

Input − int num = 2345, int x = 3

Output − n jumlah rekursif ^x sangat besar : 8

Penjelasan− Kami diberi nilai integer positif num dan x dengan nilai 2345 dan kuasa 3. Pertama, hitung 2345^3 iaitu 12,895,213,625. Sekarang, kita tambah nombor ini, iaitu 1 + 2 + 8 + 9 + 5 + 2 + 1 + 3 + 6 + 2 + 5, iaitu 44. Sekarang kita akan menambah 4 + 4, iaitu 8. Oleh kerana kita telah mencapai satu digit, output ialah 8.

Input− int num = 3, int x = 3

Output − Jumlah rekursif nombor dalam n^x di mana n dan x adalah sangat besar: 9

−Penjelasan Kita diberi positif nilai num dan x, nilai ialah 3 dan kuasa ialah 3. Mula-mula hitung 3^3, iaitu 9. Memandangkan kita sudah mendapat digit tunggal, output ialah 9 dan tiada pengiraan lanjut diperlukan.

Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikut

  • Masukkan pembolehubah integer num dan x dan hantar data ke fungsi Recursive_Digit(num, x) untuk pemprosesan selanjutnya.

  • Di dalam fungsi Recursive_Digit(num, x)
    • isytiharkan pembolehubah 'jumlah' seberapa lama dan tetapkannya untuk memanggil fungsi total_digit(num) yang akan mengembalikan jumlah angka nombor yang diluluskan sebagai argumen.

    • Isytiharkan pembolehubah sebagai suhu jenis panjang dan tetapkannya dengan % kuasa 6

    • Semak JIKA Jumlah = 3 ATAU Jumlah = 6 DAN kuasa > 1 dan kembalikan 9.

    • LAIN JIKA, kuasa = 1, kemudian kembalikan Jumlah.

    • li>
    • LAIN JIKA, kuasa = 0 dan pulangkan 1. .

    • Fungsi dalaman panjang Jumlah_digit(bilangan panjang)
    • menyemak JIKA nombor = 0 dan mengembalikan 0. Semak JIKA, nombor % 9 = 0 dan kembalikan 9.
  • Jika tidak, kembalikan nombor % 9

    • Contoh
    • #include <bits/stdc++.h>
      using namespace std;
      long total_digits(long num){
         if(num == 0){
            return 0;
         }
         if(num % 9 == 0){
            return 9;
         }
         else{
            return num % 9;
         }
      }
      long Recursive_Digit(long num, long power){
         long total = total_digits(num);
         long temp = power % 6;
         if((total == 3 || total == 6) & power > 1){
            return 9;
         }
         else if (power == 1){
            return total;
         }
         else if (power == 0){
            return 1;
         }
         else if (temp == 0){
            return total_digits((long)pow(total, 6));
         }
         else{
            return total_digits((long)pow(total, temp));
         }
      }
      int main(){
         int num = 2345;
         int x = 98754;
         cout<<"Recursive sum of digit in n^x, where n and x are very large are: "<<Recursive_Digit(num, x);
         return 0;
      }
      Salin selepas log masuk

      Output

    • Jika kita menjalankan kod di atas, ia akan menghasilkan output berikut
    Recursive sum of digit in n^x, where n and x are very large are: 1
    Salin selepas log masuk
  • Atas ialah kandungan terperinci Cari secara rekursif jumlah digit bagi n^x, di mana n dan x kedua-duanya sangat besar, dilaksanakan menggunakan C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    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