2151 - 一千年以后

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

因为在 一千年以后   

世界早已没有我   
无法深情挽着你的手   
浅吻着你额头   
别等到 一千年以后   
所有人都遗忘了我   
那时红色黄昏的沙漠   
能有谁 解开缠绕千年的寂寞   

                                ——林俊杰《一千年以后》

一千年以后,谁也不知道世界将变成什么样子,但我们的思想将永存。给出一千年以后的某一天,你能输出这个日期是该年的第几天,也便不枉此生。

题目输入

 本题为n组输入样例,输入n组数据。

  一行为一组,包含三个数字:年(题目保证2000<=year<=5000)、月、日。题目保证月、日的输入也是合法的。

题目输出

对每个样例,在单独的一行中输出它是该年的第几天。

输入/输出样例

输入格式

2
3013 11 30
3007 8 15

输出格式

334
227

C语言解答

#include <stdio.h>
int main()
{
  int n;
  scanf("%d",&n);
  int a1[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
   int a2[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
  while(n--)
  {int year,month,day;
   scanf("%d%d%d",&year,&month,&day);
   int sum=0;
   int i;
   if((year%4==0 && year%100!=0) || year%400==0)
   {for(i=1;i<=month-1;i++)
    sum=sum+a1[i];
    sum=sum+day;
    printf("%d\n",sum);
   }
   else
     {for(i=1;i<=month-1;i++)
    sum=sum+a2[i];
    sum=sum+day;
    printf("%d\n",sum);
   }
  }
  return 0;
}

C++解答

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <fstream>
using namespace std;

int luna[13]= {0,31,29,31,30,31,30,31,31,30,31,30,31};
int un_luna[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};

bool is_luna(int year)
{
    if((year%4==0 && year%100!=0)||(year%400==0))
        return 1;
    else
        return 0;
}

int main()
{
    int year,month,day;
//    ifstream cin;
//    ofstream cout;
//    cin.open("2.in");
//    cout.open("2.out");
    int t;
    scanf("%d",&t);
    while(t--)
    {
        cin>>year>>month>>day;
    int total=0;
    if(is_luna(year))
    {
        for(int i=1; i<month; i++)
        {
            total+=luna[i];
        }
        total+=day;
    }
    else
    {
        for(int i=1; i<month; i++)
        {
            total+=un_luna[i];
        }
        total+=day;
    }
    cout<<total<<endl;
}
return 0;
}

Java解答

import java.util.Scanner;
class Main {
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		Acm acm=new Acm();
		int T=reader.nextInt();
		for(int i=0;i<T;i++){
			int year=reader.nextInt();
			int month=reader.nextInt();
			int day=reader.nextInt();
			System.out.println(acm.add(year, month, day));
		}
	}
}
class Acm{
	int add(int year,int month,int day){
		int sum=0;
		int[] t={31,0,31,30,31,30,31,31,30,31,30,31};
		if(year%4==0&&year%100!=0||year%400==0) t[1]=29;
		else t[1]=28;
		sum=day;
		for(int i=0;i<month-1;i++){
			sum=sum+t[i];
		}
		return sum;
	}
}