【荷花定律】荷花总数一半具体多少天求法分享
一个池塘有少许的荷花,第二天荷花的数量是第一天的两倍,求第30天时荷花总数的一半是多少天?
以下是个人的一种解法,如有问题求大神们多加提点
//用double类型精度会准确一些,如果int类型中途会出现一个转化的过程损失精度
double[] arr=new double[30];
//起始值这里可以随便设置,可以多设置几个不同的值,以便验证结果
arr[0]=30;
double sum=0;
double count=arr[0];
//根据所得规律计算30天荷花数目的总和
for (int i = 1; i < arr.length; i++) {
arr[i]=2*arr[i-1];
sum+=arr[i];
}
//获取荷花一半的数目以便后续比对
double a=sum/2;
//把每天的数目进行累加,比对看哪一天的数目等于荷花总数的一半
for (int i = 1; i < arr.length; i++) {
count+=arr[i];
if(count==a){
System.out.println("荷花总数的一半是"+(i+1)+"天");
}
}