在初入Java学习时,通常会遇到这样一道题:
一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)
其实在这道题中运用了递归的思想对其进行计算次数,下面就来看看代码吧。
public class Main {
public static void main(String[] args) {
//单位换算 mm -> m
double height = 0.08/1000;
int n = 0; // n为对折次数
int num = num(height,n);
System.out.println(num);
}
//该方法用于展示计算对折次数
private static int num(double height,int n){
//珠穆朗玛峰的高度
double qomolangma = 8848.13;
//高度判断
if (height>qomolangma){
return n;
}else {
double h = height * 2; //对折一次 对折次数加1 n+1
return num(h, n + 1);
}
}
}