三层for循环求解组成三角形边的组合
假设a、b、c是三角形的三条边,当三条边符合勾股定理时,即,a2+b2=c2 ,为直角三角形。若a、b、c均为小于等于50的整数,求能够组成直角三角形的所有组合。请显示边的各种可能组合情况,显示总的组合数量。注意:
(a=3, b=4, c=5)
(a=4, b=3, c=5)
(a=5, b=4, c=3)
等情况只能算1种组合。
首先使用3个for循环
int a,b,c;
for(a=1;a<=50;a++){
for(b=1;b<=50;b++ ){
for(c=1;c<=50;c++){ }
}
}
然后增加if判断,只要符合a*a+b*b=c*c,则输出组合,另外需要定义一个number的整除存储组合的个数。
public static void main(String args[]){
int a,b,c,number=0;
for(a=1;a<=50;a++){
for(b=1;b<=50;b++ ){
for(c=1;c<=50;c++){
if((a*a+b*b)==c*c){
System.out.println("(a="+a+",b="+b+",c="+c+")");
number++;
}
}
}
}
System.out.println("一共的组合数量"+number);
}
运行输出:

此时有重复的情况,重复的数据我们需要消除;
我们使用条件a>b
public static void main(String args[]){
int a,b,c,number=0;
for(a=1;a<=50;a++){
for(b=1;b<=50;b++ ){
for(c=1;c<=50;c++){
if((a*a+b*b)==c*c && a>b){
System.out.println("(a="+a+",b="+b+",c="+c+")");
number++;
}
}
}
}
System.out.println("一共的组合数量"+number);
}
关键代码:if((a*a+b*b)==c*c && a>b){}
运行输出:

三层for循环求解组成三角形边的组合的更多相关文章
- ES6 三层for循环的链式写法
假设有一个很复杂的数据,并且数据嵌套层数很多.如何避免用三层for循环呢? 有以下梨子,我们需要找到val值为12的,这个对象? 'use strict' let groups = [{ conten ...
- 合并表格行---三层for循环遍历数据
合并表格行---三层for循环遍历数据 示例1 json <!DOCTYPE html> <html lang="zh_cn"> <head> ...
- hdu 1799 循环多少次?(组合)
题目是这样的: 我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分.例如, 如果代码中出现 for(i=1;i<=n;i++) OP ; 那么做了n次OP运算,如果代码中 ...
- Python3基础 用while 循环求解 一个整数的阶乘
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- 数字组合问题:Combination,CombinationSum,CombinationSum2,CombinationSum3
Combination问题描述:给定n和k,找出1-n之间所有k个数的组合,例如:n=3,k=2,返回 [[1,2] [1,3] [2,3]] 算法分析:利用递归.递归边界就是curr.size( ...
- Python编程基础:循环结构
一.为什么要用循环 现在有一个任务,要求你输出一百遍"好好学习,天天向上!",想一想,你会怎么做? (一)老老实实的笨方法 print("第1遍写:好好学习,天天向上!& ...
- FESTUNG模型介绍—1.对流方程求解
FESTUNG模型介绍-1.对流方程求解 1. 控制方程 对流问题中,控制方程表达式为 \[\partial_t C + \partial_x (u^1 C) + \partial_y (u^2 C) ...
- 1-3 - C#语言习惯 - 推荐使用查询语法而不是循环
C#语言中并不缺少控制程序流程的结构,for.while.do-while和foreach等都可以做到这点. 历史上所有计算机语言设计者都不曾遗漏这些重要的循环控制结构. 不过我们还有一个更好的方式: ...
- day05-java-(循环问题,数组)
day05-java-(循环问题,数组) 1.三种循环结构的更佳适用情况: 1)while: "当..."循环 2)do...while: "直到..."循 ...
随机推荐
- postman小白教程
转载:之前看到的保存了下来,没有找到转载地址,所以如果侵权的话联系我加下转载地址,感觉这篇文章写的很好,详细
- Java中的容器(集合)之ArrayList源码解析
1.ArrayList源码解析 源码解析: 如下源码来自JDK8(如需查看ArrayList扩容源码解析请跳转至<Java中的容器(集合)>第十条):. package java.util ...
- Visual Studio 2017打包安装项目
在我们用VS编好上位机后,就可以在自己电脑运行上位机,但是想其他人电脑运行上位机可能就行不通了,因为其他人电脑不一定有所需要的运行环境.这时我们就需要打包安装,把运行软件所需要的环境都打包在安装包里. ...
- java NIO介绍
前言 我们在写java程序的时候,为了进行优化,把全部的精力用在了处理效率上,但是对IO的关注却很少.这也可能是由以前java早期时JVM在解释字节码时速度慢,运行速率大大低于本地编译代码,因此以前往 ...
- log.info()传入多个参数的方法
不知道项目里用的是啥 ** 版本的 log4j 居然不能传入变长参数 logger.info(String.format("%s %s %s", username, feature ...
- C#取模的理解:为什么当a<b,a%b=a?
一,取模a%b 1,如果a>b,例如10%7=3,这是什么原因呢?可以根据下面的理解 10 =7*1+3,则模就是3 2,如果a<b,例如7%10 = 7,这时怎么得到的呢?根据下面来理解 ...
- Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作
前言 安装Apache Hive前提是要先安装hadoop集群,并且hive只需要在hadoop的namenode节点集群里安装即可,安装前需保证Hadoop已启(动文中用到了hadoop的hdfs命 ...
- 部署Tomcat服务器
部署Tomcat服务器,具体内容如下: 1.安装部署JDK基础环境; 2.安装部署Tomcat服务器; 3.创建JSP测试页面,文件名为test.jsp,显示服务器当前时间. 然后客户机访问Web服务 ...
- rabbit-c编译 vs2013
需要openssl的库
- 查找目录下指定类型的所有文件(maven 打包提取脚本)
1 首先想到的是递归遍历目录 筛选出符合条件的文件 dir命令递归遍历目录 /b控制显示格式 /s递归 /ad 只显示目录 dir /b/s .\* 判断文件类型 操作数得用`` rem 取出文件扩 ...