P1424 小鱼的航程(改进版) 有一只小鱼,它上午游泳150公里,下午游泳100公里,晚上和周末都休息(实行双休日),假设从周x(1<=x<=7)开始算起,请问这样过了n天以后,小鱼一共累计游泳了多...

#include <stdio.h>
#include <stdlib.h>

int main()
{
    long int n, i, week, distance;
    scanf("%ld %ld", &week, &n);
    distance = 0;
    for (i=0; i<n; i++)     //n次循环
    {
        if (week == 6)      //若为周六week+1,同时天数i+1
        {
            week++;
            i++;
        }
        if(week ==7 )       //若为周七,使week=1,重新开始一周
        {
            week = 1;
            continue;
        }
        week++;
        distance += 250;
    }
    printf("%ld\n", distance);
    return 0;
}

转载于:https://www.cnblogs.com/Tristan-Adams/p/9642065.html

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 小鱼一共游泳了 (n/7) * (150 + 100) + (x-1) * (150 + 100) + (n%7) * 150 公里。其中,(n/7)表示n中完整的周数,(x-1)表示从周x开始算起前面的数,(n%7)表示n中剩余的数。 ### 回答2: 首先,因为小鱼双休日休息,所以每个星期只有工作5,故每个星期小鱼游泳的总距离为150*5+100*2=950公里。然后,我们来计算小鱼在第x开始工作后,到第n结束工作所游泳的总距离。 我们可以通过以下步骤计算得到:先计算第x所在的星期,然后计算从x到该星期结束小鱼游泳的总距离;接着计算从该星期的下一个工作日到第n小鱼游泳的总距离;最后将两者相加即可得到小鱼在这段时间内游泳的总距离。 具体地,设第x所在的星期为第i个星期,那么小鱼从第x到第i个星期结束总共游泳了(5-i)*950+150*(i-1)+100*(i-2)公里。接下来,我们来计算从i星期的下一个工作日开始到第n小鱼游泳的总距离。 第i个星期的下一个工作日为(i+2) % 7,即如果i=7,则下一个工作日为2。从该工作日开始到第n小鱼会工作int((n-i-2)/7)+1个星期,因此在这些星期中小鱼总共游泳了int((n-i-2)/7)*950公里,最后再计算最后一个星期中小鱼游泳的总距离即可。设最后一个星期的工作数为k,则小鱼在最后一个星期中游泳150*k公里。 将前面两个部分计算的结果相加,即为小鱼在从第x开始工作到第n结束工作期间游泳的总距离。 综上所述,小鱼在从第x开始工作到第n结束工作期间游泳的总距离为: (5-i)*950+150*(i-1)+100*(i-2)+int((n-i-2)/7)*950+150*((n-i-2)%7) (i!=7) (5-i)*950+150*(i-1)+100*(i-2)+int((n-i-2)/7)*950 (i=7) 其中,i为第x所在的星期。 希望我的回答能够帮助你解决问题。 ### 回答3: 假设从周一开始算起,则上午游泳150公里下午游泳100公里,一游泳总里程为250公里。考虑小鱼游泳规律,它每周实行双休日,因此每7是一周的周期。 在一周的周期内,小鱼游泳的总里程为: 5 * 250公里/ = 1250公里小鱼每7才会休息,因此剩下的2游泳总里程为: 2 * 250公里/ = 500公里 因此,小鱼每7游泳总里程为: 1250公里 + 500公里 = 1750公里 如果小鱼游泳n,则可以先算出有多少个完整的7周期,再算出最后剩下的不足一周的数的游泳总里程。 完整的7周期数为: n / 7 最后不足一周的数为: n % 7 因此,小鱼游泳的总里程为: (n / 7) * 1750公里 + (n % 7) * 250公里 例如,如果小鱼游泳22,则有两个完整的7周期和一个不足一周的周期,因此小鱼累计游泳里程为: 2 * 1750公里 + 4 * 250公里 = 4000公里
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值