救救孩子,想了半天了

每个苹果1元,第一天买2个苹果,第二天开始,每天买的苹果数是前一天的2倍,直至购买的个数达到不超过100的最大值。编写程序求平均每天花了多少钱


#include<iostream>
using namespace std;
int main()
{
    int num=1;
    int day=0;
    int money=0;
    for(int i=1;i<100;i++)
    {
    
        num*=2;
        day++;
        
        money+=num;
    
    
                if(money>100)
        {
            break;
        
        }
    

            
    }
        money-=num;
        day-=1;
        
    cout<<"共用了"<<day<<"天。"<<"平均每天花了" <<money/day<<"元。"<<endl;
    return 0; 
}

只能这样了,我设为大于100就中止循环,意思是不能大于一百,但程序理解为大于了一百再停止,所以多算了一次,要自己减掉一次钱数和天数。


#include<iostream>
using namespace std;
int main()
{
    int num=1;
    int day=0;
    for(int i=1;i<100;i++)
    {
        
        num*=2;
        day++;
    
        if(num>=100)
        {
            break;
        }        
    }
    cout<<"平均每天花了" <<num/day<<"元"<<endl;
    return 0; 
}

先让总数*=2,到100就停止循环,让天数++。然后就总钱数除以天数。


#include<stdio.h>

int main()
{
  // first day two apples.
  int num = 2;
  // how many days passed.
  int day = 1;
  // how many apples we buy together
  int sum = 0;
  while(1) {
    // in `day` day, we buy num apples.
    sum += num;
    
    // go to next day
    day++;
    // next day we buy 2 * num apples.
    num *= 2;
    // if next day buy apples will cause sum more than 100. it's over.
    if  (sum + num >= 100)
      break;
  }
  // output
  printf("%d", sum / day);
  return 0;
}