原题:阳阳第一天买了两个苹果,一个苹果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 ;
}
运行结果:

阳阳买苹果--C实现-LMLPHP


本文同步分享在 博客“Engineer-Bruce_Yang”(CSDN)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

03-31 07:32