2020.5.14
学习的第24天咯
感觉被我写成日记了= =
题目:求出1000以内的勾股数
勾股数是一组三个自然数,a < b < c,以这三个数为三角形的三条边能够形成一个直角三角形,输出所有a + b + c < = 1000的勾股数,a小的先输出;a相同的,b小的先输出。
C 代码
#include<stdio.h>
#include <math.h>
int main()
{
int a, b, c;
for (a = 1; a < 333; a++) //a最大不能超过333,如果超过了。b.c也都超过了,加起来>1000了
for (b = a + 1; b < 500; b++)//b不能超过500,那样c就会超过500
{
if (sqrt(a * a + b * b) == (int)sqrt(a * a + b * b))//求出平方根为整数的c
{
c = sqrt(a * a + b * b);
if (c <= 1000 - a - b)
printf("%d %d %d\n", a, b, c);
}
}
return 0;
}
Java和这个一样的思路,就不写了(主要是犯懒~~)
如有错误恳请大佬指正。
算法题目来源:https://www.dotcpp.com/