小明、小王两位同学在大学学习,他们的起点都一样,学习能力都为100。小王比较聪明,天赋较高,每认真学习一天,学习能力增加2‰,小明天赋较差,每认真学习一天,学习能力增加1‰。如果休假一天不学,两人的学习能力均减少1‰。相较于小王,小明更加勤奋,天天坚持学习,从不休息,而小王每5天的前三天学习,后两天休假。
请你循环输入一个1到2之间的浮点数n(包括1和2),请你给出多少天后小明的学习能力至少是小王的n倍。当输入的数不在指定范围内时,终止。
输入格式:
一组数用空格隔开,当输入的数不在1至2之间程序结束
输出格式:
输出天数用空格隔开,最后一个数后有空格
解决代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
double xw,xm,n;
int day;
scanf("%lf",&n);
while(n>=1&&n<=2){
xw=100;xm=100;
day=0;
while(1){
day++;
xm=xm*(1+0.001);
switch(day%5){
case 1:case 2:case 3:xw=xw*(1+0.002);break;
default:xw=xw*(1-0.001);
}
if(xm>xw*n)
break;
}
printf("%d ",day);
scanf("%lf",&n);
}
return 0;
}