zoukankan      html  css  js  c++  java
  • 2018-2019-2 20175310 个人项目报告5--勾股数

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

    定义:

    勾股数是指能够构成直角三角形三条边的三个正整数,例如:a²+b²=c²

    需求分析:

    根据勾股数的定义,用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%
  • 相关阅读:
    小白详细解析C#反射特性实例
    几种快速排序算法实现
    Redis中算法之——Raft算法
    redis中算法之——MurmurHash2算法
    关于typedef的用法
    gdb调试工具常用命令
    gcc 常用命令
    Linux 远程登录ssh服务器
    Linux 构建ftp服务器
    知乎话题结构以及相关内容抓取二(Redis存储)
  • 原文地址:https://www.cnblogs.com/xicyannn/p/10888090.html
Copyright © 2011-2022 走看看