用 C++ 統計滿足不等式 x*x + y*y < n 的不同非負整數對 (x, y) 的數量
給定一個正整數 N。目標是統計滿足不等式:x*x + y*y < N 的不同非負整數對的數量。
我們將從 x=0 到 x2 < N 和 y=0 到 y2 < N 開始。如果任何 x2 + y2 < N,則增加對的數量。
輸入
n=4
輸出
distinct pairs= 4
說明 - 對將是 (0,0), (1,1), (0,1), (1,0)。所有這些都滿足不等式 x2 + y2 < 4
輸入
n=2
輸出
distinct pairs= 3
說明 - 對將是 (0,0), (0,1), (1,0)。所有這些都滿足不等式 x2 + y2 < 2
下面程式中使用的演算法如下
整數 N 儲存正整數。
函式 countPairs(int n) 以 n 作為輸入,並返回滿足不等式:x2 + y2 < n 的不同非負整數對的數量。
count 儲存此類對的數量,初始值為 0。
從 i=0 到 i2 < n 開始,另一個迴圈 j=0 到 j2 < n。
如果 i2 + j2 < n,則遞增 count。
最後返回 count 作為結果。
示例
即時演示
#include <iostream>
using namespace std;
int countPairs(int n){
int count = 0;
for (int i = 0; i*i < n; i++)
for (int j = 0; j*j < n; j++) //x*x + y*y < n
if(i*i + j*j < n)
count++;
return count;
}
int main(){
int N=4;
cout << "Distinct Non-Negative integer pairs count: "
<< countPairs(N) ;
return 0;
}
輸出
Distinct Non-Negative integer pairs count: 4
- 相關文章
- 用 C++ 統計滿足不等式 x*x + y*y < n 的不同非負整數對 (x, y) 的數量
- 統計陣列中滿足 x < y 的對 (x, y) 的數量 (C++)
- 在 C++ 中找到滿足 2/n = 1/x + 1/y + 1/z 的 x、y、z
- 在 C++ 中查詢陣列中滿足 x^y > y^x 的對 (x, y) 的數量
- 在 C++ 中找到給定範圍內滿足 x 整除 y 的不同對 (x, y)
- 解下列方程組:\( \frac{2 x y}{x+y}=\frac{3}{2} \)\( \frac{x y}{2 x-y}=\frac{-3}{10}, x+y ≠ 0,2 x-y ≠ 0 \)
- 求下列等差數列的和:\( \frac{x-y}{x+y}, \frac{3 x-2 y}{x+y}, \frac{5 x-3 y}{x+y}, \ldots \) 到 \( n \) 項
- 因式分解代數表示式 $a(x-y)+2b(y-x)+c(x-y)^2$。
- 驗證:(i) \( x^{3}+y^{3}=(x+y)\left(x^{2}-x y+y^{2}\right) \)(ii) \( x^{3}-y^{3}=(x-y)\left(x^{2}+x y+y^{2}\right) \)
- 因式分解:\( x^{2}+y-x y-x \)
- 因式分解:$4(x - y)^2 - 12(x -y) (x + y) + 9(x + y)^2$
- 解下列方程組:\( x+y=3.3 \)\( \frac{0.6}{3 x-2 y}=-1,3 x-2 y ≠ 0 \)
- 如果 \( a=x^{m+n} y^{l}, b=x^{n+l} y^{m} \) 和 \( c=x^{l+m} y^{n} \),證明 \( a^{m-n} b^{n-1} c^{l-m}=1 . \)
- 如果 \( 3^{x}=5^{y}=(75)^{z} \),證明 \( z=\frac{x y}{2 x+y} \)。
- 因式分解:\( x\left(x^{3}-y^{3}\right)+3 x y(x-y) \)
開啟你的 職業生涯
透過完成課程獲得認證
開始學習