欧拉工程第19题
来源:互联网 发布:身份证号码找人软件 编辑:程序博客网 时间:2024/06/07 21:46
题目链接:https://projecteuler.net/problem=19
求:1901-2000年内,每月的一号是星期天的总天数。
注意题目:
1.1901年开始
2.星期日
3.题目说1900.1.1是星期一,求解的不是星期一,也不是从1900年开始的
思路:
1.年,月,是否星期日,主要这三个就好了。
2.判断是不是闰年
3.从1901年开始
4.先找出每个月的1号距1900年1.1有多少天,判断能不能被7整除,整除+1
package projecteuler11to20;import java.util.Date;class level19{ void solve(){ int starYear=1900; int endYear=2000; int sumSunday=0; int DaysMonth=0; int DaysYear=0; for(int year=starYear;year<=endYear;year++){ for(int month=1;month<=12;month++){ if(year==1900 && month==1){ sumSunday=0; }else{ DaysMonth=DaysYear+getDaysMonthFirst(year,month); if(year>=1901 && DaysMonth%7==0){ sumSunday+=1; }// System.out.println(DaysMonth+" :"+DaysMonth%7 +":"+getDaysMonthFirst(year,month)+":"+getYearDays(year)); } } DaysYear=DaysYear+getYearDays(year);// System.out.println("New Year"); } System.out.println("1901-2000年每月的第一天是周日的个数:"+sumSunday); } int getDaysMonthFirst(int year,int month){ int days=0; int months[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; if(month>=3&&JudgeLeapYear(year)==true){ months[2]+=1; } for(int i=0;i<month;i++){ days+=months[i]; } days+=1; return days; } int getYearDays(int year){// int months[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; boolean flag=JudgeLeapYear(year); if(flag==true){ return 366; }else{ return 365; } } boolean JudgeLeapYear(int year){ boolean flag=false; if (year%400 == 0 || (year%4 == 0 && year%100 != 0)){ flag=true; } return flag; }}public class Problem19 { public static void main(String[] args){ Date beginTime=new Date(); new level19().solve();//171 Date endTime=new Date(); long Time = endTime.getTime()-beginTime.getTime(); System.out.println("Time:"+Time/1000+"秒"+Time%1000+"毫秒"); }}
0 0
- 欧拉工程第19题
- 欧拉工程第11题
- 欧拉工程第12题
- 欧拉工程第13题
- 欧拉工程第14题
- 欧拉工程第15题
- 欧拉工程第16题
- 欧拉工程第17题
- 欧拉工程第18题
- 欧拉工程第20题
- 欧拉工程第21题:Amicable numbers
- 欧拉工程第22题:Names scores
- 欧拉工程第23题:Non-abundant sums
- 欧拉工程第24题:Lexicographic permutations
- 欧拉工程第25题:1000-digit Fibonacci number
- 欧拉工程第26题:Reciprocal cycles
- 欧拉工程第27题:Quadratic primes
- 欧拉工程第28题:Number spiral diagonals
- iOS手势
- TCP 登录实现代码
- supervisor管理tornado项目,参数丢失【待解决】
- Java中控制double类型小数点后位数的方法
- stm32f4 discovery开发板usb全速修改测试
- 欧拉工程第19题
- HDU 1049 Climbing Worm
- 机房重构--正则表达式
- 机器学习实战——Logistic回归
- 新浪微博开发之十七(图片工具)
- NodeJS数据对象获取
- bzoj-3211 花神游历各国
- 欢迎使用CSDN-markdown编辑器
- PHP将数组存入数据库中的四种方式