每个苹果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;
}