用 C++ 统计满足 a^2 + b^2 = c^2 且 1<=a<=b<=c<= n 的三元组 (a, b, c) 的数量
给定一个整数 n,目标是找到满足以下条件的三元组(3 个数字的集合):−
我们将通过运行两个循环来实现这一点,循环变量分别为 1<=a<=n 和 1<=b<=n。相应地计算 c (c=sqrt(a2+b2)),如果满足条件 1 和 2,则递增计数器。
让我们通过示例来理解。
输入 − N=5
输出 − 三元组数量 − 1
解释 −
for a=3, b=4 and c=5 both conditions are met. 输入 − N=3
输出 − 三元组数量 − 0
解释 −
没有满足条件 1 和 2 的三元组。
下面程序中使用的算法如下: 整数 N 存储范围 [1,N] 的上限。
函数 countTriplets(int n) 接收 n 并返回满足条件 a2 +b2 =c2 且 1<=a<=b<=c<=n 的三元组的数量。
变量 count 存储此类三元组的数量,初始值为 0。
变量 sum 存储 a 和 b 的平方和。
从 a=1 到 n,b=a 到 n,计算 sum=a*a+b*b 和 c 为 sum 的平方根 (sqrt(sum))。
如果计算出的 c 的值满足 c*c==sum 且 b<=c && c<=n(满足条件 1 和 2)。
将 count 递增,因为当前的 a、b、c 满足这两个条件。
执行此操作直到 a=n 和 b=n。最后,count 将包含满足条件的三元组的数量。
返回 count 作为结果。
示例 在线演示
#include <bits/stdc++.h>
using namespace std;
int countTriplets(int n){
int count = 0;
int a,b,c;
a=b=c=1;
int sum=0;
for (a = 1; a <= n; a++) //1<=a<=n{
for (b = a; b <= n; b++) //1<=a<=b<=n{
sum = a*a + b*b; //a^2 + b^2 =c^2
c = sqrt(sum);
if (c * c == sum && b<=c && c<=n) //check 1<=a<=b<=c<=n{
count++;
cout<<endl<<"a :"<<a<<" b :"<<b<<" c :"<<c; //to print triplets
}
}
}
return count;
}
int main(){
int N = 15;
cout <<endl<< "Number of triplets : "<<countTriplets(N);
return 0;
} 输出 如果我们运行上面的代码,它将生成以下输出:
Number of triplets :
a :3 b :4 c :5
a :5 b :12 c :13
a :6 b :8 c :10
a :9 b :12 c :154
Number of triplets : 4
相关文章 证明 \( \frac{a^{-1}}{a^{-1}+b^{-1}}+\frac{a^{-1}}{a^{-1}-b^{-1}}=\frac{2 b^{2}}{b^{2}-a^{2}} \)
化简:$(a + b + c)^2 + (a - b + c)^2 + (a + b - c)^2$
因式分解:$(a – b + c)^2 + (b – c + a)^2 + 2(a – b + c) (b – c + a)$
用 C++ 统计满足 A[i] < B[j] < C[k] 的三元组数量
证明:\( \left(\frac{x^{a}}{x^{b}}\right)^{a^{2}+a b+b^{2}} \times\left(\frac{x^{b}}{x^{c}}\right)^{b^{2}+b c+c^{2}} \times\left(\frac{x^{c}}{x^{a}}\right)^{c^{2}+c a+a^{2}}=1 \)
证明:\( \left(\frac{x^{a}}{x^{-b}}\right)^{a^{2}-a b+b^{2}} \times\left(\frac{x^{b}}{x^{-c}}\right)^{b^{2}-b c+c^{2}} \times\left(\frac{x^{c}}{x^{-a}}\right)^{c^{2}-c a+a^{2}}=1 \)
如果 \( a+b=5 \) 且 \( ab=2 \),求 (a) \( (a+b)^{2} \) (b) \( a^{2}+b^{2} \) (c) \( (a-b)^{2} \) 的值
化简:$(a + b + c)^2 + (a - b + c)^2$
化简:$(a + b + c)^2 - (a - b + c)^2$
如果 $a ≠ b ≠ c$,证明点 $(a, a^2), (b, b^2), (c, c^2)$ 永远不可能共线。
证明:\( \left(\frac{x^{a^{2}+b^{2}}}{x^{a b}}\right)^{a+b}\left(\frac{x^{b^{2}+c^{2}}}{x^{b c}}\right)^{b+c}\left(\frac{x^{c^{2}+a^{2}}}{x^{a c}}\right)^{a+c}= x^{2\left(a^{3}+b^{3}+c^{3}\right)} \)
证明 $(a – b)^2, (a^2 + b^2)$ 和 $(a + b)^2$ 成等差数列。
化简:$-\frac{1}{2}a^{2}b^{2}c+\frac{1}{3}ab^{2}c-\frac{1}{4}abc^{2}-\frac{1}{5}cb^{2}a^{2}+\frac{1}{6}cb^{2}a-\frac{1}{7}c^{2}ab+\frac{1}{8}ca^{2}b$。
在四边形 \( ABCD \) 中,\( \angle B=90^{\circ}, AD^{2}=AB^{2}+BC^{2}+CD^{2} \),证明 \( \angle ACD=90^o \)。
证明点 \( A (2, 3), B (-2, 2), C (-1, -2) \) 和 \( D (3, -1) \) 是正方形 \( ABCD \) 的顶点。