洛谷P1424Java

洛谷P1424Java


题目背景
原来的题目太简单,现改进让小鱼周末也休息,请已经做过重做该题。

题目描述
有一只小鱼,它平日每天游泳 250 公里,周末休息(实行双休日),假设从周 x(1\le x \le 7)x(1≤x≤7) 开始算起,过了 n(n\le 10^6)n(n≤10
6
) 天以后,小鱼一共累计游泳了多少公里呢?

输入格式
输入两个整数x,n(表示从周x算起,经过n天)。

输出格式
输出一个整数,表示小鱼累计游泳了多少公里。

输入输出样例
输入
3 10
输出
2000


  • 题目我就是粘贴复制一下,具体题目大家去洛谷看就好。

代码如下

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int x=input.nextInt();  //这是从周x开始的
        int n=input.nextInt();  //这是一共经过了多少天
        int day2;
        int day1;
        int b,a,week,end;
        if (x<6) {              //小鱼从周一到周五开始游
             b = 7 - x + 1;  //这是从周几开始后剩余的天数,例如x=3,那么b=5
             day1 = b - 2;    //第一周游了几天
             a=(n-b)%7;      //a是从第二周开始以后最终剩余的天数
            if(a<6) {
                 day2 = day1 + a;    //相当于第一周和最后一周加起来的游了多少天
            }
            else {              //相当于a=6,因为是%7,所以不可能出现a>=7的情况
                day2=day1+5;
            }
             week=((n-b)/7)*5;   //(n-b)/7这是第一周和最后一周中间的周数;*5之后就是中间几周游的天数了
             end=(day2+week)*250;
            System.out.println(end);
        }
        if (x>=6){              //要是开始小鱼就是从周6或者周日出发的话,那么他直接原地休息1~2天
            b = 7 - x + 1;
            day1=0;             //除了这里day1要变成0之外,其余的地方不变。因为第一周不游,所以day1就是0
            a=(n-b)%7;
            if(a<6) {
                day2 = day1 + a;
            }
            else {
                day2=day1+5;
            }
            week=((n-b)/7)*5;
            end=(day2+week)*250;
            System.out.println(end);
        }
    }
}
  • 我写的稍微有点繁琐啊,不过中间并没有用到什么Java中的函数,只是基本的加减乘除,要是看不明白可以用笔写一下,随便找个数字自己带进去算一算,每一个式子列一下就知道啥意思了
  • 当然了,我知道有一些靓(diao)仔(mao)肯定是懒得动手的,所以我自己附上了我自己写的方程,大家可以带着瞅一瞅
    *在这里插入图片描述
    *字虽然丑了点,不过我愿意动手自己算,毕竟看我的字的都是懒得动手的
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值