how2j.cn

步骤 1 : 练习-黄金分割点   
步骤 2 : 答案-黄金分割点   
步骤 3 : 练习-水仙花数   
步骤 4 : 答案-水仙花数   
步骤 5 : 练习-小学算术题   
步骤 6 : 答案-小学算术题   

步骤 1 :

练习-黄金分割点

edit Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
寻找某两个数相除,其结果 离黄金分割点 0.618最近

分母和分子不能同时为偶数
分母和分子 取值范围在[1-20]
练习-黄金分割点
步骤 2 :

答案-黄金分割点

edit
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费4个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费4个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

13分44秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器


public class HelloWorld { public static void main(String[] args) { // 寻找某两个数相除,其结果 离黄金分割点 0.618最近 // // 分母和分子不能同时为偶数 // 分母和分子 取值范围在[1-20] int range = 20; // 取值范围 float breakPoint = 0.618f; // 黄金分割点 float minDiff = 100; // 离黄金分割点的差值 int answerFenzi = 0; // 找到的分子 int answerFenmu = 0; // 找到的分母 for (int fenzi = 1; fenzi <= range; fenzi++) { for (int fenmu = 1; fenmu <= range; fenmu++) { // 分母和分子不能同时为偶数 if (0 == fenzi % 2 & 0 == fenmu % 2) continue; // 取值 float value = (float) fenzi / fenmu; // 取离黄金分割点的差值 float diff = value - breakPoint; // 绝对值 diff = diff < 0 ? 0 - diff : diff; // 找出最小的差值 if (diff < minDiff) { minDiff = diff; answerFenzi = fenzi; answerFenmu = fenmu; } } } System.out.println("离黄金分割点(" + breakPoint + ")最近的两个数相除是:" + answerFenzi + "/" + answerFenmu + "=" + ((float) answerFenzi / answerFenmu)); } }
步骤 3 :

练习-水仙花数

edit Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
水仙花数定义:
1. 一定是3位数
2. 每一位的立方,加起来恰好是这个数本身,比如153=1*1*1+5*5*5+3*3*3

寻找所有的水仙花数
步骤 4 :

答案-水仙花数

edit
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费4个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费4个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

4分16秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器


答案-水仙花数
public class HelloWorld { public static void main(String[] args) { for (int i = 100; i < 1000; i++) { int baiwei = i / 100; int shiwei = i / 10 % 10; int gewei = i % 10; int cube = baiwei * baiwei * baiwei + shiwei * shiwei * shiwei + gewei * gewei * gewei; if (cube == i) { System.out.println("找到水仙花数:" + i); } } } }
public class HelloWorld {
	public static void main(String[] args) {

		for (int i = 100; i < 1000; i++) {

			int baiwei = i / 100;
			int shiwei = i / 10 % 10;
			int gewei = i % 10;
			int cube = baiwei * baiwei * baiwei + shiwei * shiwei * shiwei + gewei * gewei * gewei;
			if (cube == i) {
				System.out.println("找到水仙花数:" + i);
			}

		}

	}

}
步骤 5 :

练习-小学算术题

edit Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
提示使用多层循环嵌套解决
练习-小学算术题
步骤 6 :

答案-小学算术题

edit
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费4个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费4个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

5分14秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器


public class HelloWorld { public static void main(String[] args) { int a = 0; int b = 0; int c = 0; int d = 0; for (a = -100; a <= 100; a++) { for (b = -100; b <= 100; b++) { for (c = -100; c <= 100; c++) { for (d = -100; d <= 100; d++) { if(a+b==8&&c-d==6&&a+c==14&&b+d==10){ System.out.println("a:"+a); System.out.println("b:"+b); System.out.println("c:"+c); System.out.println("d:"+d); } } } } } } }


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2020-10-18 答案记录
hfnsc




答案
int top; //分母
		int bottom; //分子
		double temp; //中间差值
		double min = 100; //最小值
		int minTop =0 ;  //最小值时的分母
		int minBottom = 0;  //最小值时的分子
		
		for(top = 1; top <=20 ;top++){
			for (bottom = 1; bottom <= 20; bottom++) {
				if((top % 2 == 0) && (bottom % 2 == 0)) continue; //两者为偶数跳过此次循环
				//最大的陷阱藏在这个求值语句中
				//top和bottom都是int类型,如果计算前不先进行强制类型转换
				//计算会出错,可以自己代值进去算,  “1/2”  和 “ 1.0/2 ” 是不同的
				temp =Math.abs(0.618 - (float)top / bottom) ; //差值取绝对值,好比较
				if (temp < min){
					min = temp;
				    minTop = top;
				    minBottom = bottom;
				} 
			}
		}
		
		System.out.println("分母:" + minTop +"\n分子:" + minBottom +"\n两者相除结果:" + (float)minTop / minBottom);

	}

							


1 个答案

asd79211
答案时间:2020-10-19



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2020-10-16 第一题分析解答
win9斩华雄




原题:寻找某两个数相除,其结果离黄金分割点 0.618最近,分母和分子不能同时为偶数,分母和分子 取值范围在[1-20] 分析:1.结果离黄金分割点 0.618最近,说明分子小于分母,分子和分母都不用循环20次 2.分母和分子不能同时为偶数,需要用到continue略过本次循环进行下一次循环
		int is = 0;
		int ij = 0;
		double s=1;
		double f;
		for(int i=1;i<=20;i++) {
			for(int j=20;j>i;j--) {
				f=(double)i/j;
				if(i%2==0 && j%2==0) {
					continue;
				}
				System.out.println("i:"+i+"\t"+"j:"+j+"\t"+f);
				
				if(Math.abs(f-0.618)<Math.abs(s-0.618)) {
					s=f;
					 is=i;
					 ij=j;
				}
			}
			
		}
		System.out.println("i:"+is+"\t"+"j:"+ij+"\t"+s);

							


1 个答案

z94265426
答案时间:2020-10-18



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2020-10-14 第三题答案
2020-10-14 第二题答案
2020-10-14 第一题答案


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 233 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 基础-控制流程-综合练习 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 635924385
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图