`
qiufeihu
  • 浏览: 33458 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C语言算法阳阳买苹果

阅读更多

阳阳买苹果,每个苹果0.8元,阳阳第一天买两个苹果,第二天开始每天买前一天的两倍,直到购买的苹果个数为不超过100的最大值,编程求阳阳每天平均花多少钱?

代码如下:

#include <stdio.h>
int main()
{
	int n=2,day=0;         /*定义n,day为基本整型*/
	float money=0,ave;     /*定义money,ave为单精度型*/
	while(n<100){          /*苹果个数不超过100,故while中得表达式n小于100*/
		money+=0.8*n;      /*将每天花得钱数累加求和*/
		day++;             /*天数加1*/
		n*=2;              /*每天买前一天个数的两倍*/
	}
	ave=money/day;         /*求出平均每天花得钱数*/
	printf("The result is %.6f\n",ave);   /*输出每天平均所花钱数*/
}

   运行结果:

   The result is 16.799999

分享到:
评论
1 楼 kyzaqlx 2015-07-31  
第n天所买苹果个数为a(n) = 2 ^ n
前n天所买苹果总数为S(n) = 2 ^ (n + 1) - 2
因为a(n) < 100且a(n)最大,则n = 6
所以每天平均花钱t = S(n) * 0.8 / n = 16.8,而非16.799999

public class OJ {
    public static void main(String[] args) {
        int max = 100;
        double price = 0.8;
        
        int day = (int)(Math.log(max) / Math.log(2));
        int count = (1 << (day + 1)) - 2;
        double ave = price * count / day;
        
        System.out.println(ave);
    }
}

相关推荐

Global site tag (gtag.js) - Google Analytics