Java基础--单重循环操作题(例题说明易错点)

这篇博客探讨了两个使用Java解决的数学问题。第一个问题是关于纸张对折达到珠穆朗玛峰高度所需的次数,强调了while循环、幂运算及循环条件的设置。第二个问题涉及找到一个整数,使其加100和168后分别是完全平方数,重点讲解了for循环和条件判断在解题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问:一张纸的厚度大约是0.08mm,对折多少次之后能达到或超过珠穆朗玛峰的高度(8848.13米)

这里需要我们求的是对折的次数,那 在循环次数不确定的情况,通常选用while或do-while循环

我们选取while进行操作,已知高度和厚度,可以像下图中的high一样进行一下定义,也可以直接像厚度一样直接输入数值,影响不大。

最重要的是思路,很明显这题是以        比较对折后的厚度和山的高度        作为循环条件的,接着咱们只要        列出对折后的厚度的运算公式        以及        循环的条件改变规律        就可以了

注意:如果公式这里你也和我一样采用的  幂运算,需要注意的就是不能直接输入2^n,而是要用Math.pow(2,n)表示!(Java的魅力)

 最后!循环的条件改变规律    这里我们也需要留意一下,因为我们是先  判断是否满足循环条件再进行的改变,所以最后所求得到的数值是        改变后的但没有执行操作的

因此,要把最后的结果再减去一次条件改变的数值,咱们这里是减去1,一定不要漏了这一步!

* 幂运算的公式:Math.pow(底数,幂)

问:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?                

程序分析:在10万以内判断,另外由这个数的开方数自乘得到平方数,进行比较

在循环次数确定的时候,通常选用for循环

有题目中可以知道循环的这个数的范围是在0~10万,所以我们for循环里面,就让这个数的初始值为0,范围就是小于等于10万,每次自增

紧接着我们就可以列出下面的两行等式,也就是说这个数加上100以及268之后,给它们分别开根号,得到值的表达式

后面我们需要再用到选择结构if,条件为给它们开根号后得到的值都为整数

则输出该数

 

注意:因为我们给一个数开根号后该数不一定为整数所以要先用double,然后我们再在if里面加上条件,如果得到的数为整数的话,则巴拉巴拉

小括号里加int就可以进行强制类型转换了!

* 这里又学到了java里的一个新表达式:

给一个数开根号:Math.sqrt(i)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值