勾股数

1.问题描述

求100以内所有的勾股数

所谓勾股数,是指能够构成三角形三条边的三个正整数。

2.问题分析

勾股数,要符合a^2+b^2=c^2,而且任意两条边的和大于第三条边

这就要用到sqrt函数,就相当于不用平方了

c = (int)sqrt(a * a + b * b);
                if (c* c == a * a + b * b && a + b > c && a + c > b && b + c > a && c <= 100)//这里不要忘记是一百以内的

 

3.算法分析

穷举法,两个循环语句分别控制a,b,这样a和b的值能确定,它们的平方和等于c的平方,可以将a^2+b^2的平方根赋值给c,再去判断c的平方是不是等于a^2+b^2,是不是符合直角三角形

4.程序

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    int a, b, c, d = 0;
    for(a=0;a<=100;a++)
        for (b = a + 1; b <= 100; b++)
        {
            c = (int)sqrt(a * a + b * b);//求c的值
                if (c* c == a * a + b * b && a + b > c && a + c > b && b + c > a && c <= 100)//判断c^2是不是等于a^2+b^2,然后两边之和大于第三边
                {
                    cout << a << "  " << b << "  " << c << "  " << endl;//输出
                        cout << endl;//换个行
                }
        }
    cout << endl;
}

sqrt函数要包含头文件#include<math.h>

作用:
sqrt() 用来求给定值的平方根

posted @ 2023-05-10 23:54  酥饼馅红豆沙  阅读(130)  评论(0编辑  收藏  举报