郭、王两位大侠同上终南山习武,两人最初的战力值均为100。王大侠骨骼清奇,天赋较高,每练功一天,战力增加2‰,郭大侠比较愚笨,每练功一天,战力增加1‰。如果休假一天不练,两人的战力均减少1‰。相较于王大侠,郭大侠更加勤奋,日日练功,从不休息,而王大侠,则三天打渔,两天晒网,也就是每5天的前三天练功,后两天休假。
请编写程序,计算N天之后,郭大侠和王大侠战力分别是多少?
输入格式:
整数N
输出格式:
郭的战力值,王的战力值
说明:均保留5位小数,以英文逗号分隔
输入样例:
5 |
输出样例:
100.50100,100.40010 |
通过读题易知:1.郭大侠每天练功,战力一天增长1‰
2.王大侠每五天中的前三天练功,战力一天增长2‰;每五天中的后两天休息战力一天减少1‰
通过以上分析,需要两个循环结构:1.计算郭大侠战力=1.001的n次方
2.计算王大侠战力:将天数从0到天数-1遍历,将每个数字被5取余。当数字%5<3时,为王大侠的练功日;当数字%5>2时,为王大侠的休息日。
#include<stdio.h>
#include<math.h>
int main() {
double guo = 100, wang = 100;
int tian = 0,jishu1,jishu2;
scanf("%d", &tian);
guo = guo * pow(1.001, tian); //计算郭大侠战力
for (jishu2 = 0; jishu2 < tian; jishu2++) { //计算王大侠战力
if (jishu2 % 5 < 3) {
wang = wang * 1.002; //王大侠练功所增长的战力
}
else if (jishu2 % 5 > 2) {
wang = wang * 0.999; //王大侠休息王大侠休息所增长的战力
}
}
printf("%.5lf,%.5lf",guo,wang);
return 0;
}