首页 > ACM题库 > 九度OJ > 九度-1070-今年的第几天?[解题代码]
2013
12-12

九度-1070-今年的第几天?[解题代码]

题目来源:2003年清华大学计算机研究生机试真题

题目描述:

输入年、月、日,计算该天是本年的第几天。

输入:

包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。

输出:
输入可能有多组测试数据,对于每一组测试数据,
输出一个整数,代表Input中的年、月、日对应本年的第几天。
样例输入:
1990 9 20
2000 5 1
样例输出:
263
122

java 代码如下:
import java.util.Scanner;
public class Main {
	static int arr[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	static int y,m,d;
	public static boolean isYear(int y){
		return (y%4 == 0 && y % 100 !=0) || y % 400 == 0;
	}
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		
		while(s.hasNextInt()){
			int sum = 0;
			y = s.nextInt();
			m = s.nextInt()-1;
			d = s.nextInt();
			for(int i=0; i<m; i++)
				sum += arr[i];
			if(isYear(y) && m > 1)
				sum += 1;
			sum += d;
			System.out.println(sum);
		}

	}

}
/**************************************************************
	Problem: 1070
	User: coder
	Language: Java
	Result: Accepted
	Time:1080 ms
	Memory:55728 kb
****************************************************************/


  1. 学算法中的数据结构学到一定程度会乐此不疲的,比如其中的2-3树,类似的红黑树,我甚至可以自己写个逻辑文件系统结构来。