Rumah >pembangunan bahagian belakang >C++ >Tanya nombor Armstrong maksimum dalam julat tatasusunan dan kemas kininya
Pertanyaan julat tatasusunan ialah kawasan baru bagi struktur data. Dalam pertanyaan ini, kami menetapkan elemen rawak ke dalam tatasusunan dan memberikan masalah pertanyaan umum untuk menyelesaikan masalah struktur data dengan cekap. Nombor Armstrong ialah hasil tambah kubusnya. Contohnya - 0, 1, 153, 370, 371 dan 407 adalah semua nombor Armstrong.
Mari kita ambil contoh untuk memahami nombor Armstrong
Contoh 1 - Nombor yang diberikan ialah 371, semak sama ada nombor itu adalah nombor Armstrong.
3*3*3 + 7*7*7 + 1* sup>1*1 = 371
Jadi, ini adalah nombor Armstrong.
Contoh 2 − Nombor yang diberikan ialah 121, semak sama ada nombor itu adalah nombor Armstrong.
1*1*1 + 2*2*2 + 1* sup>1*1 = 9
Oleh itu, ini bukan nombor Armstrong.
Dalam siaran ini, kami akan menyelesaikan masalah pertanyaan julat tatasusunan untuk mencari nombor Armstrong maksimum dan mengemas kininya.
Vector<object_type> variable_name;
Ini adalah salah satu cara untuk mengisytiharkan vektor dalam atur cara.
Kita akan mulakan dengan fail pengepala bernama “bits/stdc++.h”.
Kami mencipta definisi fungsi yang dipanggil "isArmstrong" yang mengambil parameter n sebagai input dan menyemak sama ada nombor itu ialah nombor Armstrong.
Memahami operasi nombor Armstrong termasuk perkara berikut:
Simpan nilai ‘0’ ke dalam pembolehubah ‘jumlah’, yang kemudiannya akan digunakan untuk menambah setiap nombor dengan kuasa.
kemudian simpan ‘n’ dalam pembolehubah ‘temp’. Pembolehubah sementara ini akan digunakan dalam gelung while untuk menyemak keadaan nombor Armstrong.
Seterusnya, kami menyimpan nilai ‘0’ dalam pembolehubah ‘digit’, yang kemudiannya akan mencari kuasa setiap nombor.
Sekarang mulakan fungsi utama dan mulakan pembolehubah "arr[]" untuk menetapkan elemen tatasusunan yang diberikan.
Kami menggunakan yang pertama untuk gelung untuk mencetak elemen tatasusunan.
Memulakan pembolehubah vektor bernama "armstrong" yang akan memenuhi syarat dalam pernyataan if untuk mencari senarai nombor Armstrong dengan menggunakan fungsi yang telah ditetapkan pushback().
Kemudian kami menggunakan sesaat untuk gelung untuk mengulangi indeks panjang tatasusunan, di bawah gelung ini pernyataan if-else digunakan untuk mencari senarai elemen tatasusunan berdasarkan sama ada nombor Armstrong atau tidak.
Untuk mengemas kini pertanyaan julat tatasusunan, kami memulakan pembolehubah yang dipanggil 'nombor baharu' untuk menyimpan elemen tatasusunan baharu yang akan disahkan sebagai nombor Armstrong dengan menggunakan pernyataan if-else.
Seterusnya, simpan 0 ke dalam pembolehubah ‘maxArmstrong’, yang digunakan untuk menjejak nombor Armstrong maksimum antara elemen tatasusunan.
Teruskan menggunakan gelung ketiga untuk, yang berulang sepanjang panjang elemen Armstrong. Di dalam gelung ini, gunakan pernyataan if untuk mencari nombor Armstrong maksimum.
Kemudian gunakan gelung terakhir untuk mengulangi elemen tatasusunan berikut yang memenuhi nombor Armstrong dan mencetak semua nombor Armstrong.
Akhir sekali, kami menggunakan pembolehubah ‘maxArmstrong’ untuk mencetak nombor Armstrong maksimum.
Dalam aplikasi ini, kami akan menemui nombor Armstrong maksimum dengan kemas kini.
#include <bits/stdc++.h> using namespace std; // Function to check if a number is an Armstrong number or not bool isArmstrong(int n) { int sum = 0; int temp = n; int digits = 0; while (temp > 0) { digits++; temp /= 10; } temp = n; while (temp > 0) { int digit = temp % 10; sum += pow(digit, digits); temp /= 10; } return sum == n; } int main() { int arr[] = {0, 123, 1, 19, 12, 153, 370}; int a = sizeof(arr) / sizeof(arr[0]); cout<<"The given array element:"; for(int m = 0; m < a; m++) { cout<<arr[m]<<" "; } // Vector to store Armstrong numbers vector<int> armstrongs; // Check each element of the array if it's an Armstrong number or not cout<<"\nThe element found to be Non-Armstrong number\n"; for (int i = 0; i < a; i++) { if (isArmstrong(arr[i])) { armstrongs.push_back(arr[i]); } else { cout << arr[i] << endl; } } // Add a new number to the array and check if it's an Armstrong number or not int newNumber = 1278; cout<<"The newly added number\t"<<newNumber; if (isArmstrong(newNumber)) { cout << " : Armstrong number" << endl; armstrongs.push_back(newNumber); } else { cout << " : Non-Armstrong number" << endl; } // Find the maximum Armstrong number in the array int maxArmstrong = 0; for (int i = 0; i < armstrongs.size(); i++) { if (armstrongs[i] > maxArmstrong) { maxArmstrong = armstrongs[i]; } } cout << "The following array element satisfied for Armstrong Number: "; for (int i = 0; i < armstrongs.size(); i++) { cout << armstrongs[i] << " "; } cout << endl; cout << "The maximum Armstrong number in the array is: " << maxArmstrong << endl; return 0; }
There are 3 array element whose setbits are in a multiple of KThe given array element:0 123 1 19 12 153 370 The element found to be Non-Armstrong number 123 19 12 The newly added number 1278 : Non-Armstrong number The following array element satisfied for Armstrong Number: 0 1 153 370 The maximum Armstrong number in the array is: 370
Kami meneroka konsep pertanyaan julat tatasusunan untuk mencari nombor Armstrong maksimum dengan fungsi kemas kini. Kami melihat cara menapis elemen tatasusunan yang diberikan kepada gabungan nombor Armstrong dan bukan Armstrong. Selepas mengalih keluar nombor bukan Armstrong daripada elemen tatasusunan sedia ada, kami hanya mencetak hasil elemen tatasusunan yang memenuhi jenis Armstrong dan mencari nilai maksimum antaranya.
Atas ialah kandungan terperinci Tanya nombor Armstrong maksimum dalam julat tatasusunan dan kemas kininya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!