用 C++ 統計 a^3 + b^3 = N 的 (a, b) 對數
給定一個數字 N,目標是找到有序的正數對,使得它們的立方和為 N。
我們將透過尋找方程 a3 + b3 = N 的解來實現。其中 a 不大於 N 的立方根,b 可以計算為 (N-a3) 的立方根。
讓我們透過例子來理解。
輸入
N=35
輸出
Count of pairs of (a,b) where a^3+b^3=N: 2
解釋
Pairs will be (2,3) and (3,2). 23+33=8+27=35
輸入
N=100
輸出
Count of pairs of (a,b) where a^3+b^3=N: 0
解釋
No such pairs possible.
下面程式中使用的方案如下:
我們取整數 N。
函式 cubeSum(int n) 獲取 n 並返回立方和為 n 的有序對的數量。
將初始變數 count 設定為 0(表示對數)。
使用 for 迴圈遍歷以查詢 a。
從 a=1 開始到 a<=cbrt(n)(n 的立方根)。
計算 b 的立方為 n-pow(a,3)。
計算 b 為 cbrt(bcube)。
如果 pow(b,3)==bcube,則 count 加 1。
所有迴圈結束後,count 將包含此類對的總數。
返回 count 作為結果。
示例
#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int cubeSum(int n){
int count = 0;
for (int a = 1; a < cbrt(n); a++){
int bcube=n - (pow(a,3));
int b = cbrt(bcube);
if(pow(b,3)==bcube)
{ count++; }
}
return count;
}
int main(){
int N = 35;
cout <<"Count of pairs of (a,b) where a^3+b^3=N: "<<cubeSum(N);
return 0;
}輸出
如果我們執行上面的程式碼,它將生成以下輸出:
Count of pairs of (a,b) where a^3+b^3=N: 2
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP