黑色星期五问题
POJ上的题目,我明明都做出来了,可是提交就是不对,Wrong Answer。。。
难道是POJ的bug?为什么我总是不可以呢~~~
题目
时间限制: 1000ms内存限制: 65536kB
描述若某个月13号恰好是星期五,则这一天被称为黑色星期五。已知某年的一月一日是星期w,并且这一年是闰年,
求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。(w=1..7)输入输入有多组,
每组一行且为一个整数w, 指该年的一月一日是星期w。(1<=w<=7)输出每组数据输出一行,
从小到大输出具有黑色星期五的月份,月份与月份之间用空格隔开。
若没有月份具有黑色星期五,则输出NULL样例输入1样例输出9 12
解答:
java实现
import java.util.Scanner;
public class test4 {
/**
* @param args
*/
static int getDays(int n){
if(n == 1 || n==3 || n==5 || n==7 || n==8 || n==10 || n==12 )
return 31;
else if( n==4 ||n==6||n==9||n==11)
return 30;
else if(n==2)
return 29;
else
{
System.out.println("illegal input");
return 0;
}
}
static int getDistance(int k){//返回第k月13号,距离1月1号的天数
int days = 0;
for(int i=1;i<k;i++)
{
days+= getDays(i);
}
days+=12;
return days;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//System.out.println("in");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int days;
int count = 0;
for(int i=1 ;i<=12;i++){
days = getDistance(i);
int t =( days+n) % 7;
int out = t ;
// System.out.println("days= "+ days+ ",i= " + i+", out = "+out);
if(out==5)
{
count ++;
System.out.print(i+" ");
}
}
if(count==0)
System.out.println("NULL");
//int i = getDistance(1);
//System.out.println(i%7);
}
}
自己机子上跑总是ok的,也没什么bug,可是上线就是WrongAnswer~~~
伤心哇,求高人提点