勾股数
需求分析
该项目需求是要判断一个数是否满足勾股数的各个条件,并输出判断结果。勾股数:勾股数就是可以构成一个直角三角形三边的一组正整数,满足勾股定理:直角三角形两条直角边a、b的平方和等于斜边c的平方(a²+b²=c²)(参考百度百科对勾股数的解释)
功能设计
- 基本功能:查找、判断并输出勾股数
- 扩展功能:输入一个数,判断1到该数的区间内是否存在勾股数,根据判断输出相应的结果
设计实现
首先定义两个变量a,b,存储用户输入的区间头和尾,之后使用for循环遍历区间,对每一个数进行核心代码中的运算,逐个进行查找,如果找到满足的就输出,否则继续查找直至全部遍历。
测试运行
正常情况
异常情况
核心代码
for (int i=1;i<=a ;i++) { //遍历1到a
for(int j=i;j<=a;j++){ //在i到a中进行遍历,可避免重复的组出现
for(int k=j;k<=a;k++){ //在j到a中进行遍历,这样可以避免重复发生
if((i*i+j*j) == k*k){ //如果三者满足勾股定理
System.out.println(i+" "+j+" "+k); //输出
count++; //计数变量加一
}
}
}
}
总结
本程序的关键是判断每个数是否有相应的两个数使得他们满足勾股定理,所以可以使用for
循环进行遍历,抓住这一步就可以完成程序的编写了。
PSP
步骤 | 耗时(min) | 百分比 |
---|---|---|
需求分析 | 10 | 22.2% |
设计 | 5 | 11.1% |
代码实现 | 15 | 33.3% |
测试 | 5 | 11.1% |
分析总结 | 10 | 22.2% |