目錄
文法
演算法
Example
範例
輸出
結論
首頁 後端開發 C++ 查詢數組範圍內的最大阿姆斯壯數,並進行更新

查詢數組範圍內的最大阿姆斯壯數,並進行更新

Sep 06, 2023 pm 10:21 PM
陣列 更新 阿姆斯壯數

查詢數組範圍內的最大阿姆斯壯數,並進行更新

陣列範圍查詢是資料結構的一個新興領域。在這個查詢中,我們將隨機元素設定到數組中,並給出了一般的查詢問題,以有效地解決資料結構問題。阿姆斯壯數是其各位數立方和。例如- 0、1、153、370、371和407都是阿姆斯壯數。

讓我們舉一個例子來理解阿姆斯壯數

範例1 - 給定的數字是371,檢查該數字是否為阿姆斯壯數。

3*3*3 7*7*7 1* sup>1* 1 = 371

因此,這是阿姆斯壯數。

範例2 − 給定的數字是121,檢查該數字是否為阿姆斯壯數。

1*1*1 2*2*2 1* sup>1* 1 = 9

因此,這不是一個阿姆斯壯數。

在這篇文章中,我們將解決數組範圍查詢問題,以找到最大的阿姆斯特朗數,並進行更新。

文法

Vector<object_type> variable_name;
登入後複製

這是在程式中宣告向量的一種方式。

演算法

  • 我們將從名為 「bits/stdc .h」 的頭檔開始。

  • 我們正在建立一個名為「isArmstrong」的函數定義,該函數以參數n作為輸入,用於檢查該數字是否為阿姆斯壯數。

    理解阿姆斯壯數的操作有以下幾點:

    • 將值‘0’儲存到‘sum’變數中,該變數稍後將用於對每個具有冪的數字進行相加。

    • 然後將‘n’儲存在變數‘temp’。這個臨時變數將在while迴圈中用來檢查阿姆斯壯數的條件。

    • 接下來,我們將值‘0’儲存在變數‘digits’中,該變數將在稍後找到每個數字的冪。

  • 現在開始主函數,並初始化變數“arr[]”來設定給定的陣列元素。

  • 我們正在使用第一個for迴圈列印陣列元素。

  • 初始化名為「armstrong」的向量變量,該變數將滿足if語句中的條件,透過使用預定義函數pushback()來找到阿姆斯壯數的列表。

  • 然後我們使用第二個for循環來迭代數組的長度索引,在這個循環下,if-else語句被用來根據是否為阿姆斯特朗數來找到數組元素的列表。

  • 為了更新數組範圍查詢,我們正在初始化一個名為'newNumber'的變量,用於儲存將透過使用if-else語句來驗證是否為阿姆斯壯數的新數組元素。

  • 接下來,將0儲存到變數‘maxArmstrong’中,該變數用於追蹤陣列元素中的最大阿姆斯壯數。

  • 繼續使用第三個for循環,它迭代阿姆斯壯元素的長度。在這個迴圈內部,使用if語句來找出最大的阿姆斯壯數。

  • 然後使用最後一個循環來迭代滿足阿姆斯特朗數的以下數組元素,並列印所有阿姆斯特朗數。

  • 最後,我們使用‘maxArmstrong’變數列印出最大的阿姆斯壯數。

Example

的中文翻譯為:

範例

在這個程式中,我們將找到具有更新的最大阿姆斯壯數。

#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
登入後複製

結論

我們探索了數組範圍查詢的概念,以找到具有更新功能的最大阿姆斯壯數。我們看到如何將給定的陣列元素過濾為阿姆斯壯數和非阿姆斯壯數的組合。在從現有數組元素中移除非阿姆斯特朗數之後,我們只需列印滿足阿姆斯特朗類型的數組元素的結果,並找到其中的最大值。

以上是查詢數組範圍內的最大阿姆斯壯數,並進行更新的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
Windows無法存取指定裝置、路徑或文件 Windows無法存取指定裝置、路徑或文件 Jun 18, 2024 pm 04:49 PM

小夥伴電腦出現這樣的故障,開啟「此電腦」和C碟檔案會提示「Explorer.EXEWindows無法存取指定裝置、路徑或檔案。你可能沒有適當的權限存取存取專案。」包括資料夾、檔案、此電腦、回收站等,雙擊都會彈出這樣的窗口,右鍵又是正常的。這是系統更新導致,如果你也遇到這樣的狀況,下面小編教大家如何解決。一,開啟登錄編輯程式Win+R,輸入regedit,或右鍵開始選單執行輸入regedit;二,定位登錄機「電腦\HKEY_CLASSES_ROOT\PackagedCom\ClassInd

如何使用 foreach 迴圈移除 PHP 陣列中的重複元素? 如何使用 foreach 迴圈移除 PHP 陣列中的重複元素? Apr 27, 2024 am 11:33 AM

使用foreach循環移除PHP數組中重複元素的方法如下:遍歷數組,若元素已存在且當前位置不是第一個出現的位置,則刪除它。舉例而言,若資料庫查詢結果有重複記錄,可使用此方法移除,得到不含重複記錄的結果。

PHP數組深度複製的藝術:使用不同方法完美複製 PHP數組深度複製的藝術:使用不同方法完美複製 May 01, 2024 pm 12:30 PM

PHP中深度複製數組的方法包括:使用json_decode和json_encode進行JSON編碼和解碼。使用array_map和clone進行深度複製鍵和值的副本。使用serialize和unserialize進行序列化和反序列化。

PHP 陣列鍵值翻轉:不同方法的效能比較分析 PHP 陣列鍵值翻轉:不同方法的效能比較分析 May 03, 2024 pm 09:03 PM

PHP數組鍵值翻轉方法效能比較顯示:array_flip()函數在大型數組(超過100萬個元素)下比for迴圈效能更優,耗時更短。手動翻轉鍵值的for迴圈方法耗時相對較長。

Windows永久暫停更新,Windows關閉自動更新 Windows永久暫停更新,Windows關閉自動更新 Jun 18, 2024 pm 07:04 PM

Windows更新可能導致以下一些問題:1.相容性問題:某些應用程式、驅動程式或硬體裝置可能與新的Windows更新不相容,導致它們無法正常運作或崩潰。 2.效能問題:有時,Windows更新可能會導致系統變得更慢或出現效能下降的情況。這可能是由於新的功能或改進需要更多資源來運作。 3.系統穩定性問題:某些用戶報告稱,在安裝Windows更新後,系統可能會出現意外的崩潰或藍屏錯誤。 4.資料遺失:在罕見的情況下,Windows更新可能會導致資料遺失或檔案損壞。這是為什麼在進行任何重要的更新之前,請備份您

PHP數組多維排序實戰:從簡單到複雜場景 PHP數組多維排序實戰:從簡單到複雜場景 Apr 29, 2024 pm 09:12 PM

多維數組排序可分為單列排序和嵌套排序。單列排序可使用array_multisort()函數依列排序;巢狀排序需要遞歸函數遍歷陣列並排序。實戰案例包括按產品名稱排序和按銷售量和價格複合排序。

PHP 數組分組函數在資料整理的應用 PHP 數組分組函數在資料整理的應用 May 04, 2024 pm 01:03 PM

PHP的array_group_by函數可依鍵或閉包函數將陣列中的元素分組,傳回關聯數組,其中鍵為組名,值是屬於該組的元素數組。

AMD 發布新 AGESA 韌體更新,修復影響 Zen 2 處理器的 Zenbleed 漏洞 AMD 發布新 AGESA 韌體更新,修復影響 Zen 2 處理器的 Zenbleed 漏洞 May 03, 2024 pm 04:31 PM

本站5月3日消息,微星公司今天發布了AMDAM4AGESA1.2.0.Ca韌體更新,修復了針對AMDRyzen4000系列Zen2APU中的Zenbleed安全漏洞。微星本次發布的韌體更新適用於幾乎所有X570主機板,主要修復了適用於Zen2處理器中CVE-2023-20593,AMD將其歸類為中級威脅。本站註:此漏洞追蹤編號為CVE-2023-20593,能以每核心每秒30KB的速度竊取機密資料。此攻擊會影響CPU上執行的所有軟體,包括虛擬機器、沙箱、容器和進程。儘管AGESA1.2.0.Ca的目

See all articles