杭电2005
来源:互联网 发布:手机淘宝直通车怎么做 编辑:程序博客网 时间:2024/06/07 01:36
题不难,但细节较多,所以。。。不但二月闰年有影响,七八月都是31天,这个也得专门分开讨论,还有就是七八月份开讨论后,加的基数是三到七月的,不能完全复制上面的代码,基数得改~做题还是不能心急呀
#include<stdio.h>
#include<iostream>
using namespace std;int main()
{
int a,b,c,d;
while(scanf("%d/%d/%d",&a,&b,&c)!=EOF)
{
d=0;
if(b<=2) //一二月份
cout<<(b-1)*31+c<<endl;
else if(b<=8) //三到八月份,记得不是七月份哦,一定要减八
{
b-=3;
if(b%2==0)
d=(b/2)*61+c;
else
d=(b/2)*61+31+c;
if(a%400==0||(a%100!=0&&a%4==0))
cout<<d+60<<endl;
else
cout<<d+59<<endl;
}
else //九到十二月份
{
b-=8;
if(b%2==0)
d=(b/2)*61+c+153;
else
d=(b/2)*61+31+c+153;
if(a%400==0||(a%100!=0&&a%4==0))
cout<<d+60<<endl;
else
cout<<d+59<<endl;
}
}
return 0;
}
还有一种方法
#include <iostream>
#include<stdio.h>
using namespace std;
int main()
{
int a,b,c;
while(scanf("%d/%d/%d",&a,&b,&c)!=EOF)
{
int d=0;
if(((a%4==0&&a%100!=0)||a%400==0)&&b>2) d=1;
for(int i=1;i<b;i++)
{
d+=31;
switch(i)
{
case 2: d-=3;break;
case 4: d--;break;
case 6: d--;break;
case 9: d--;break;
case 11: d--;break;
}
}
cout<<d+c<<endl;
}
}
- 杭电Hd 2005
- 杭电2005
- 杭电2005
- 杭电2005
- 杭电ACM 2005
- 杭电2005
- 杭电2005
- 杭电acm 2005
- 杭电oj~~2005
- 杭电oj--2005
- 杭电 2005 第几天?
- 杭电 2005 第几天?
- 杭电2005第几天
- 2005 杭电 第几天?
- 杭电 2005 第几天?
- 杭电 2005 第几天
- 【杭电】[2005]第几天?
- 【杭电2005】第几天?
- 【uploadify3.1使用二】批量文件、图片上传
- ios开发点滴
- 数据访问模块
- 面试提问技巧
- smarty3.0中文手册文档API及使用指南
- 杭电2005
- Hibernate、Spring和Struts工作原理及使用理由
- Intent
- Java之美之集合类
- IE下使用js与自带ActiveX控制web打印
- 容易忽略的相近词,检验我们生命的成色
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
- HDOJ2046(动态规划)
- Win32 - 关于UNICODE编码