洛谷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)肯定是懒得动手的,所以我自己附上了我自己写的方程,大家可以带着瞅一瞅
*
*字虽然丑了点,不过我愿意动手自己算,毕竟看我的字的都是懒得动手的