问题:
中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”
作业思路提示:
问题分析与算法设计
根据题意可以将解题过程分为三步:
1)计算从2010年1月1日开始至指定日期共有多少天;
2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;
3)根据余数判断他是在“打鱼”还是在“晒网”;
若 余数为1,2,3,则他是在“打鱼”
否则 是在“晒网”
程序流程图:
package cn.xust.work.www;
import java.util.Scanner;
public class text {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);//分别输入年、月、日
System.out.println(“请输入年份: “);
int year = scan.nextInt();
System.out.println(“请输入月份:”);
int month = scan.nextInt();
System.out.println(“请输入日期”);
int day = scan.nextInt();
judge(getAllDays(year, month, day));
}
//看输入的日期是否合法,并且确定是打鱼还是晒网
private static void judge(int Days) {
if(Days == -1){
System.out.println(“日期不合法”); //输入的日期不合法
}
else if(Days%5 >=1 && Days%5 <= 3){ //当余数为1、2、3时,打鱼,否则为晒网
System.out.println(“打鱼 “);
}
else {
System.out.println(“晒网 “);
}
}
public int year;
public int month[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};//一年中每个月的天数
public int day;
public static int sum = 0;
//判断平年还是闰年
public void getYear(int year){
if((year%4 == 0&&year%100 != 0)||year%400 == 0)
{
month[2] = 29; //闰年二月的天数为29
year = 366; //闰年的天数是366
System.out.println(“闰年”);
}
else
{
year = 365; //平年天数是365
System.out.println(“平年”);
}
}
public static int getAllDays(int year,int month,int day){
if(year < 2010)//年份小于2010,日期不合格
{
//System.out.println(“不在时间区间内!”);
return day = -1;
}
else{
for(int i = 2010;i < year;i++)//天数相加
{
sum += year;
}
}
sum += getBeforeDays(year, month, day);
return sum;
}
private static int getBeforeDays(int year2, int month2, int day2) {
// TODO Auto-generated method stub
return 0;
}
}
运行结果:
中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”
最新推荐文章于 2024-10-12 17:02:55 发布