(C语言编程)PTA里“三天打鱼两天晒网”

郭、王两位大侠同上终南山习武,两人最初的战力值均为100。王大侠骨骼清奇,天赋较高,每练功一天,战力增加2‰,郭大侠比较愚笨,每练功一天,战力增加1‰。如果休假一天不练,两人的战力均减少1‰。相较于王大侠,郭大侠更加勤奋,日日练功,从不休息,而王大侠,则三天打渔,两天晒网,也就是每5天的前三天练功,后两天休假。

--------------------------------------------

请编写程序,计算N天之后,郭大侠和王大侠战力分别是多少

输入格式:整数N

输出格式:\n郭的战力值,王的战力值\n

说明:均保留5位小数,以英文逗号分隔

输入样例:5\n

输出样例:100.50100,100.40010

通过读题易知:

1.郭大侠每天练功,战力一天增长1‰

2.王大侠每五天中的前三天练功,战力一天增长2‰;每五天中的后两天休息战力一天减少1‰

--------------------------------------------

代码:

#include<stdio.h>
int main(){
    
    double a=100.00000,b=100.00000;
    int i,N,m,n,j;
    scanf("%d",&N);
    
    /*郭*/
    for (i=1;i<=N;i++)
    b=b*1.001;
    
    /*王*/
    m=N/5;
    n=N%5;
       
       /*1--4*/
       if(N/5==0&&N%5>0){
     switch(n){
        case 1:{a=a*1.002;
            break;
        }
        case 2:{for (i=1;i<=2;i++)
                    a=a*1.002;
            break;
        }
        case 3:{for (i=1;i<=3;i++)
                    a=a*1.002;
            break;
        }
        case 4:{for (i=1;i<=3;i++)
                    {a=a*1.002;}
                a=a*0.999;
            break;
        }
       }}
       
    /*5及5的倍数*/
    if(N/5>0&&N%5==0){
        for(i=1;i<=m;i++){
        for (j=1;j<=3;j++)
            a=a*1.002;
         for (j=1;j<=2;j++)
            a=a*0.999;
    }
    }
   
    
    /*不是5的倍数也不是1--4*/
    if(N%5>0&&N/5>0){
    for(i=1;i<=m;i++){
        for (j=1;j<=3;j++)
            a=a*1.002;
         for (j=1;j<=2;j++)
            a=a*0.999;
    }
    switch(n){
        
        case 1:{a=a*1.002;
            break;
        }
        case 2:{for (i=1;i<=2;i++)
                    a=a*1.002;
            break;
        }
        case 3:{for (i=1;i<=3;i++)
                    a=a*1.002;
            break;
        }
        case 4:{for (i=1;i<=3;i++)
                    {a=a*1.002;}
                a=a*0.999;
            break;
        }
        default:break;
       }
}
    printf("%.5f,%.5f",b,a);
    
    return 0;
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay'YuAn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值