美文网首页
J - Problem J

J - Problem J

作者: 2639c4293ebe | 来源:发表于2018-12-10 14:10 被阅读0次

给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
问题链接:https://vjudge.net/contest/274223#problem/J
问题简述:输入日期(格式为—/—/—),求该日在那年中的第几天。
问题分析:判断年份是否为闰年,将月份对应的天数和该月的日数累加。
程序说明:用while循环输入多组数据,for循环提取有用信息,if语句判断年份,最后用for循环和if语句计算结果。
AC通过的C++程序如下:

include<iostream>

using namespace std;
int main()
{
char a[100];
int x = 1,n=0, b[3]={ 0 };
while (cin >> a)
{
int i = 0;
b[0] = 0, b[1] = 0, b[2] = 0, n = 0;
x = 1;
for (; a[i] != '/'; i++)
{
b[0] = b[0] * x +( a[i]-48);
x = 10;
}
i++;
x = 1;
for (; a[i] != '/'; i++)
{
b[1]=b[1]*x+(a[i]-48);
x = 10;
}
x = 1;
i++;
for (; a[i] != '\0'; i++)
{
b[2] = b[2] * x +( a[i]-48);
x = 10;
}
if((b[0]%4==0)&&(b[0]%100!=0)||b[0]%400==0)
{
for (int j = 1; j < b[1]; j++)
{
if (j == 1 || j == 3 || j == 5 || j == 7 || j == 8 || j == 10 || j == 12)
{
n += 31;
}
if (j == 2)
{
n += 29;
}
if (j == 4 || j == 6 || j == 9 || j == 11)
{
n += 30;
}
}
n += b[2];
cout << n << endl;
}
else
{
for (int j = 1; j < b[1]; j++)
{
if (j == 1 || j == 3 || j == 5 || j == 7 || j == 8 || j == 10 || j == 12)
{
n += 31;
}
if (j == 2)
{
n += 28;
}
if (j == 4 || j == 6 || j == 9 || j == 11)
{
n += 30;
}
}
n += b[2];
cout << n << endl;
}
}
return 0;
}

相关文章

  • J - Problem J

    给定一个日期,输出这个日期是该年的第几天。Input输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成...

  • CUC-SUMMER-6-J

    J - Water problem HDU - 5867 If the numbers 1 to 5 are wr...

  • ACM训练1.3

    J - Problem J 给定一个日期,输出这个日期是该年的第几天。 Input 输入数据有多组,每组占一行,数...

  • j j j j

    i i iii

  • Uva(12235)(helpbubu)

    链接:https://vjudge.net/problem/UVA-12235思路:状态表示dp[i][j][k]...

  • j j

    sjj

  • 2018-12-30

    j j j j

  • 将打击打击打击打击

    d j d j j d j d j d

  • 蒋松和佘山

    j d j j d j d j大舅蒋松家

  • hjhn

    j j j

网友评论

      本文标题:J - Problem J

      本文链接:https://www.haomeiwen.com/subject/nhbrhqtx.html