鱼C论坛

 找回密码
 立即注册
查看: 3045|回复: 27

题目9:找出唯一的满足a + b + c = 1000的毕达哥拉斯三元组

[复制链接]
发表于 2023-5-29 03:45:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目9:找出唯一的满足a + b + c = 1000的毕达哥拉斯三元组


Special Pythagorean triplet

A Pythagorean triplet is a set of three natural numbers, a < b < c,

for which, a2 + b2 = c2

For example, 32 + 42 = 9 + 16 = 25 = 52.

There exists exactly one Pythagorean triplet for which a + b + c = 1000.
Find the product abc.


题目翻译:

如果存在 3 个自然数 a、b、c,假设 a < b < c,满足条件 a2 + b2 = c2,例如 32 + 42 = 9 + 16 = 25 = 52,那么这就是一个毕达哥拉斯三元组。

已知存在并且只存在一个毕达哥拉斯三元组满足条件 a + b + c = 1000。

找出该三元组,并计算出 a * b * c 的结果。


视频讲解:




思路解析及源码参考(C & Python):

游客,如果您要查看本帖隐藏内容请回复


评分

参与人数 1荣誉 +5 鱼币 +2 贡献 +3 收起 理由
sfqxx + 5 + 2 + 3 会不会超时呢

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-29 17:53:58 From FishC Mobile | 显示全部楼层
让我来康康
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-29 19:22:59 | 显示全部楼层
#include <bits/stdc++.h>
using namespace std;


int main() {
        for (int a = 1; a <= 1000; ++a) {
                for (int b = a + 1; b + a <= 1000; ++b) {
                        int c2 = a * a + b * b;
                        int c = sqrt(c2);
                        if (c * c == c2 && c > b && a + b + c == 1000) {
                                printf("%d*%d*%d=%d\n", a, b, c, a * b * c);
                        }
                        
                }
        }
}
这……还能更快吗

欧也许……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-29 20:36:10 | 显示全部楼层
zhangjinxuan 发表于 2023-5-29 19:22
这……还能更快吗

欧也许……


还有数学方法,极大地缩小了外层迭代的次数。


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-29 20:45:15 | 显示全部楼层
欧拉计划 发表于 2023-5-29 20:36
还有数学方法,极大地缩小了外层迭代的次数。

嗯,学到了

以前根本就不用担心卡常,现在我觉得应该要重视一下了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-30 08:10:22 | 显示全部楼层
#include <stdio.h>
int main()
{
        for (int a = 150;a < 1000;a += 2)
        {
                for (int b = 151;b < 1000-a;b += 2)
                {
                        if (a*a + b*b == (1000-a-b) * (1000-a-b))
                        {
                                printf("a:%d,b:%d,c:%d\n",a,b,1000-a-b);
                                printf("%d\n",a*b*(1000-a-b));
                                return 0;
                        }
                }
        }

        return 0;
}
//我只知道有一个结论是一个奇数一个偶数,这个我当时初中数学老师提过有点印象,然后略微算一下可以从150开始
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-30 08:13:14 | 显示全部楼层
毕达哥拉斯三元组可以写成(m^2 - n^2, 2mn, m^2 + n^2)
这个应该是数论的东西吧感觉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-30 09:14:14 From FishC Mobile | 显示全部楼层
yinda_peng 发表于 2023-5-30 08:10

额,这个好像有点误打误撞了,因为这个是本原的才行,虽说非本原的也不多就是了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-30 10:39:22 From FishC Mobile | 显示全部楼层
我思考了一下,所有非本原的三元数组都是本原三元数组的倍数,也就是所有本原数组决定了所有的非本原数组,所以一般都是对本原三元数组进行研究讨论,大多数情况下的题目都是本原三元数组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-2 14:11:36 | 显示全部楼层
好玩的题目
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-12 10:12:40 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 06:14:39 From FishC Mobile | 显示全部楼层
欧拉计划 发表于 2023-5-29 15:32
@liuhongrun2022 @Twilight6 @isdkz @元豪 @人造人 @sfqxx  @yinda_peng 兄弟们,来挑战新题目啦~

下次记得艾特一下我。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-2 23:55:00 From FishC Mobile | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-2 23:56:27 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-3 10:37:34 | 显示全部楼层
让我拉看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-4 10:02:46 | 显示全部楼层
for a in range(1,1001):
    for b in range(a+1,1000):
        c= a*a+b*b
        if a + b + (c**0.5) == 1000:
            print(a, b, c**0.5)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-6 16:56:30 | 显示全部楼层

让我来康康
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-6 16:56:54 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-7 22:36:50 | 显示全部楼层
让我康康!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-10 15:28:24 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 14:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表