原题:阳阳第一天买了两个苹果,一个苹果0.8元。从第二天开始,他每天购买前一天苹果数量的2倍,直到购买的苹果个数达到不超过100的最大值。编程求阳阳平均每天花多少钱?
编程思路:
假设阳阳每天购买苹果的数量为n个,花的钱的总数记为money , 由题意可以推导出公式:money = money + 0.8 * n,
这里表示之前买苹果花钱的总额加上今天花钱买苹果的总和,我们还应当注意一下n的变化,随着天数的增加,他每天购买的前一天苹果数量的2倍,随着天数的增加,这里我们将天数定义为day ,当day++时,n值是变化的,为n = n * 2 ,且n的初始化值应当为2,因为阳阳第一天就已经买了2个苹果。
上面的这个过程在循环中执行,那么什么是循环的结束条件呢?我们看到题目上写了,直到购买的苹果个数达到不超过100的最大值的时候,满足条件,循环退出。那这个条件如何推导?很简单,也就是n < 100 。
这样,通过我们的while循环就可以计算出money的总和,也就是不超过100的花钱的总和,求出来之后,我们将money的总和去除以day天数,那么结果不就出来了吗?
写代码:
#include <stdio.h>
int main(void)
{
int n = 2 , day = 0; //n的初始化值为2
float money = 0 , avg ;
while(n < 100) //条件,当n < 100的时候
{
money+=0.8*n ; //我们的总和根据money = money + 0.8 * n,这个公式计算</span>
day++ ; //让天数自加
n*=2 ; //当day++时,n值是变化的,为n = n * 2 </span>
}
avg = money / day ; //求平均数
printf("%0.6f\n",avg); //输出平均值
return 0 ;
}
运行结果:
本文同步分享在 博客“Engineer-Bruce_Yang”(CSDN)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。