C++程式:統計給定範圍內平方根、立方根和兩者兼具的數字


假設我們有一個數字 n。我們需要統計 1 到 n 之間的整數 x 的數量,這些整數 x 必須是某個正整數的平方或者立方(或者同時是平方和立方)。

問題類別

程式設計中的各種問題可以透過不同的技術來解決。為了解決一個問題,我們首先必須設計一個演算法,而要做到這一點,我們必須詳細研究特定問題。如果同一個問題反覆出現,則可以使用遞迴方法;或者,我們也可以使用迭代結構。可以使用 if-else 和 switch case 等控制語句來控制程式中的邏輯流程。有效地使用變數和資料結構可以提供更簡單的解決方案,以及更輕量級、更節省記憶體的程式。我們必須檢視現有的程式設計技術,例如分治法、貪心演算法、動態規劃,並找出它們是否可以應用。這個問題可以透過一些基本的邏輯或暴力方法來解決。請參考以下內容,以便更好地理解該方法。

因此,如果我們問題的輸入是 n = 25,那麼輸出將是 6

步驟

為了解決這個問題,我們將遵循以下步驟:

a := square root of n
b := cube root of n
c := cube root of a
return a + b - c

示例

讓我們來看下面的實現,以便更好地理解:

#include <bits/stdc++.h>
using namespace std;
int solve(int n){
   int a = sqrt(n), b = cbrt(n), c = cbrt(a);
   return a + b - c;
}
int main(){
   int n = 25;
   cout << solve(n) << endl;
}

輸入

25

輸出

6

更新時間: 2022年4月8日

373 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告