把1900年至2300年裏13號落在的星期數弄出來了!!!

---------------------- android培訓java培訓、期待與您交流! ----------------------

class Fri13
{
public static void main(String[] args) 
	{
		int[] result=new int[7]; 
		int weekday;
		for (int year=1900;year<2300;year+=1)
		{	
			int s1=365*(year-1900)-((year-1900)/4-1);
			for (int month=1;month<13;month+=1)
			{	
				int s2=0;
				if (year%4==0)	
				{
					int[] monthday={0,31,29,31,30,31,30,31,31,30,31,30,31};
					for (int i=0;i<month-1;i+=1) 
					s2+=monthday[i];
				}
				else            
				{
					int[] monthday={0,31,28,31,30,31,30,31,31,30,31,30,31};
					for (int i=0;i<month-1;i+=1) 
					s2+=monthday[i];
				}
			weekday=(s1+s2+13)%7;
			result[weekday]+=1;
			}
		}
		System.out.println("從1900到2300年,13號落在每個星期數上的次數:");
		System.out.println("星期日"+"\t"+"星期一"+"\t"+"星期二"+"\t"+"星期三"+"\t"+"星期四"+"\t"+"星期五"+"\t"+"星期六");
		System.out.println(result[0]+"\t"+result[1]+"\t"+result[2]+"\t"+result[3]+"\t"+result[4]+"\t"+result[5]+"\t"+result[6]);
	}
}


比第一次寫的優化了一點,思路是一樣的,局部變量的問題解決了。

    結果是:
把1900年至2300年裏13號落在的星期數弄出來了!!! - s - s的學習記錄
 
    之後我還把這7個數加了一下,的確是4800,400年裏有4800個13號,同理算別的號所在的星期數也可以在這個基礎上套循環。 

 --------------------- ASP.Net+Android+IOS開發.Net培訓、期待與您交流! ----------------------
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章