Rumah > pembangunan bahagian belakang > C++ > Jumlah n nombor asli pertama dinaikkan kepada kuasa kelima

Jumlah n nombor asli pertama dinaikkan kepada kuasa kelima

PHPz
Lepaskan: 2023-09-11 14:45:09
ke hadapan
1296 orang telah melayarinya

Jumlah n nombor asli pertama dinaikkan kepada kuasa kelima

Nombor asli ialah nombor bermula dari 1 dan termasuk semua integer positif. Artikel berikut membincangkan dua cara yang mungkin untuk mengira jumlah kuasa kelima bagi n nombor asli pertama . Artikel ini membincangkan kedua-dua pendekatan secara terperinci dan membandingkannya dari segi kecekapan dan intuitif.

Pernyataan Masalah

Tujuan masalah ini adalah untuk mengira jumlah aritmetik bagi n nombor asli pertama, semuanya dinaikkan kepada kuasa kelimanya, iaitu

$mathrm{1^5 + 2^5 + 3^5 + 4^5 + 5^5 + … + n^5}$ sehingga item ke-.

Contoh

Memandangkan n ialah nombor asli, nilainya tidak boleh kurang daripada 1.

Input: n = 3
Salin selepas log masuk
Output: 276
Salin selepas log masuk

Penjelasan

$mathrm{1^5 = 1 * 1 * 1 * 1 * 1 = 1}$

$mathrm{2^5 = 2 * 2 * 2 * 2 * 2 = 32}$

$mathrm {3^5 = 3 * 3 * 3 * 3 * 3 = 243}$

Menambah istilah ini, kita mendapat $mathrm{1^5 + 2^5 + 3^5 = 276}$

Oleh itu, hasil tambah bagi 3 nombor asli yang pertama ialah 276.

Input: n = 1
Salin selepas log masuk
Output: 1
Salin selepas log masuk

Penjelasan

$mathrm{1^5 = 1 * 1 * 1 * 1 * 1 = 1}$

Jadi hasil tambah 1 nombor asli yang pertama ialah 1.

Input: n = 11
Salin selepas log masuk
Output: 381876
Salin selepas log masuk

Penjelasan

$mathrm{1^5 = 1 * 1 * 1 * 1 * 1 = 1}$

$mathrm{2^5 = 2 * 2 * 2 * 2 * 2 = 32}$

. ....

$mathrm{11^5 = 11 * 11 * 11 * 11 * 11 = 161051} $

Selepas menambah istilah ini, kami mendapat $mathrm{1^5 + 2^5 + 3^5 + ... + 11^ 5 = 381876}$

Jadi jumlah 11 nombor asli yang pertama ialah 381876.

Kaedah intuitif

  • Gunakan gelung berulang untuk mengira kuasa kelima setiap nombor satu demi satu.

  • Buat pembolehubah untuk menyimpan jumlah selepas setiap lelaran gelung.

  • Tunjukkan jawapan.

Algoritma

Fungsi utama()

  • Memulakan n.

  • Fungsi memanggil sumOfFifthPower().

  • Cetak jumlahnya.

Fungsi sumOfFifthPower(int n)

  • Jumlah permulaan = 0

  • untuk (i dari 1 hingga n)

    • jumlah = jumlah + (pow(i,5)

  • Kembalikan jumlah

Contoh

Program ini mengira kuasa kelima setiap nombor dan menambahkannya pada jumlah sedia ada pada setiap lelaran menggunakan gelung for yang dilaksanakan n kali dalam fungsi sumOfFifthPower().

// A C++ program to find the sum of the first n natural numbers, all raised to their fifth power.
#include <iostream>
#include <cmath>
using namespace std;
// This function calculates the summation of fifth powers of the first // n natural numbers and stores
// it in the variable sum
int sumOfFifthPower(int n){
   int sum = 0;
   for (int i = 1; i <= n; i++)    {
   
      // calculate fifth power of i and add it to sum
      sum = sum + pow(i, 5);
   }
   return sum;
}

// main function
int main(){
   int n = 3;
   int ans; // to store final result
   ans = sumOfFifthPower(n); // function call
   cout << "The sum of the fifth powers of the first " << n << " natural numbers is: ";
   cout << ans; // Display the final result
   return 0;
}
Salin selepas log masuk

Output

The sum of the fifth powers of the first 3 natural numbers is: 276
Salin selepas log masuk
Salin selepas log masuk

Analisis ruang-masa

Kerumitan masa: O(n), kerana hanya satu untuk gelung digunakan di dalam fungsi sumOfFifthPower().

Kerumitan ruang: O(1), kerana tiada ruang tambahan digunakan.

Kaedah Alternatif

  • Gunakan formula matematik untuk mengira hasil tambah kuasa kelima bagi setiap nombor.

  • Tunjukkan jawapan.

Formula

$$mathrm{displaystylesumlimits_{k=1}^n :k^5=frac{1}{12}(2n^6+6n^5+5n^4−n^ 2)}$$

Algoritma

Fungsi utama()

  • Memulakan n.

  • Fungsi memanggil sumOfFifthPower().

  • Cetak jumlahnya.

Fungsi sumOfFifthPower(int n)

  • Jumlah permulaan = 0

  • Jumlah = ((2 * pow(n,6)) + (6 * pow(n,5) + (5 * pow(n,4) - (pow(n,2)) / 12

  • Kembalikan jumlah

Contoh

Program ini mengira jumlah dengan menggantikan nilai n ke dalam formula matematik yang mengira hasil tambah n nombor asli pertama yang dinaikkan kepada kuasa kelima dalam fungsi sumOfFifithPower().

// A C++ program to find the sum of the first n natural numbers, all raised to their fifth power.
#include <iostream>
#include <cmath>
using namespace std;

// This function calculates the summation of fifth powers of the first // n natural numbers and stores it in the variable sum
int sumOfFifthPower(int x){
   int sum = 0;
   sum = ((2 * pow(x,6)) + (6 * pow(x,5)) + (5 *pow(x,4)) - (pow(x,2))) / 12; 
   return sum;
}

// main function
int main(){
   int n = 3;
   int ans; // to store final result
   ans = sumOfFifthPower(n); // function call
   cout << "The sum of the fifth powers of the first " << n << " natural numbers is: ";
   cout << ans; // Display the final result
   return 0;
}
Salin selepas log masuk

Output

The sum of the fifth powers of the first 3 natural numbers is: 276
Salin selepas log masuk
Salin selepas log masuk

Analisis ruang-masa

Kerumitan masa: O(1), kerana jawapan dikira dalam satu lelaran menggunakan formula langsung.

Kerumitan ruang: O(1), kerana tiada ruang tambahan diperlukan.

Bandingkan kaedah di atas

Terjemahan bahasa Cina bagi ialah: Terjemahan bahasa Cina bagi ialah:
Standard Kaedah 1 Kaedah 2
Kerumitan masa O(n) O(1)
Kerumitan ruang O(1) O(1)
Intuitif LagiLessLess
kecekapanLessLess Lagi

Kesimpulan

Artikel ini membincangkan dua kaedah untuk mengira hasil tambah kuasa kelima bagi n nombor asli pertama. Ia juga memperkenalkan konsep, algoritma, penyelesaian program C++ bagi kedua-dua kaedah dan analisis kerumitan setiap kaedah. Ia boleh diperhatikan bahawa kaedah pertama mempunyai kerumitan masa yang lebih tinggi tetapi lebih intuitif. Pendekatan kedua, sebaliknya, menggunakan formula matematik yang mudah untuk menyelesaikan masalah dengan cekap dalam masa dan ruang O(1).

Atas ialah kandungan terperinci Jumlah n nombor asli pertama dinaikkan kepada kuasa kelima. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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