问题描述:
今天是周六,又到了可以休息的日子了,7天后又会是一个周六。请你帮忙计算下,n(n为整数,可以是正也可以为负)天后会是星期几呢?
输入格式:
输入天数
输出格式:
输出星期几
输入样例1:
8
输出样例1:
星期日
输入样例2:
-2
输出样例2:
星期四
思路:
- 定义两个变量,n和m,其中n用于存储用户输入的整数,m初始值为6,表示当前的天数。
- 根据n的值进行不同的处理:
a. 如果n大于等于0,将n加到m上,然后判断m是否大于7。如果是,判断m是否为7的倍数,如果是则输出“星期日”,否则计算m除以7的余数,并输出对应的天数。如果m小于等于7,直接输出对应的天数。
b. 如果n小于0,将n加到m上,然后判断m是否大于等于0。如果是,直接输出对应的天数。如果m小于0,计算m的绝对值,然后判断是否小于7。如果是则输出“星期日”,否则计算m除以7的余数,并输出对应的天数。
代码:
import java.util.Scanner;
public class Main{
public static void main(String args[]){
int n,m = 6;
Scanner scan = new Scanner(System.in);
String[] date = {"星期一","星期二", "星期三", "星期四", "星期五", "星期六", "星期日"};
n = scan.nextInt();
if(n >= 0){
m += n;
if(m > 7) {
if (m % 7 == 0) {
System.out.println("星期日");
} else {
int j = m % 7;
System.out.println(date[j - 1]);
}
}
else{
System.out.println(date[m - 1]);
}
}
//n小于0
else{
m += n;
if(m >= 0){
System.out.println(date[m-1]);
}
else{
int a = Math.abs(m);
if(a < 7) System.out.println(date[7-a-1]);
else{
if(a % 7 == 0) System.out.println("星期日");
else{
System.out.println(date[7 - (a % 7) - 1]);
}
}
}
}
}
}
效果截图: