首页 > 其他 > 详细

2018-2019-2 20175310 个人项目报告5--勾股数

时间:2019-05-26 20:17:01      阅读:133      评论:0      收藏:0      [点我收藏+]

2018-2019-2 20175310 个人项目报告5--勾股数

定义:

勾股数是指能够构成直角三角形三条边的三个正整数,例如:a2+b2=c2

需求分析:

根据勾股数的定义,用Java语言进行设计实现。

设计实现:

本代码实现的是计算100以内所有勾股数
伪代码:

1、本代码有三个循环,第一个i循环是对勾股数组中第一个数进行循环,从1开始到99结束
2、第二个j循环是对勾股数组中第二个数进行循环,为了避免重复,将三个数从小到大输出,即输出的勾股数组a,b,c满足a<=b<c,因此第二个循环从i开始到99结束
3、第三个n循环是对勾股数组中第三个数进行循环,因为两边之和大于第三边,因此第三个数肯定比前两个数大,所以第三个循环从j+1开始到99结束
4、判断(i*i+j*j)==n*n是否成立,若成立则输出勾股数组

难点总结:

本题的难点主要在于三个循环的嵌套上,特别是循环的开始与结束点的选择,我一开始三个循环都是定的从1开始到99结束,结果出现了下面这种情况:
技术分享图片
出现了大量的重复,因为a,b,cb,a,c其实是一样的,所以要对循环的开始和结束进行限制
核心代码如下:

for(int i = 1; i < 100; i++){
            for(int j = i; j <100; j++){
                for(int n = j + 1; n < 100; n++){
                    if((i*i+j*j)==n*n){
                        System.out.println(i+"和"+j+"和"+n+"是一组勾股数");
                    }
                }
            }
        }

运行结果截图:

技术分享图片

码云链接

PSP时间

步骤 耗时(min) 百分比
需求分析 10 11%
设计 20 22%
代码实现 30 33%
测试 10 11%
分析总结 20 22%

2018-2019-2 20175310 个人项目报告5--勾股数

原文:https://www.cnblogs.com/xicyannn/p/10888090.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!