第三题 输入年月日求时间差
来源:互联网 发布:成都cnc编程最新招聘 编辑:程序博客网 时间:2024/05/11 02:44
p15面
打表法就是无冲突的hash表
int buf[32][13][5001];以后定义这么大的数组一定不能在main函数里面定义,
定义为全局变量或者用malloc开辟内存
这一题需要注意的地方是!!
1.方法很新颖,需要多练
2.习惯下标从1开始就必须把数组的长度多一个!不然就习惯从0开始少一个!
//见证scanf的真正实力吧 scanf可以读取特定位数的int型输入%4d表示四位
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <algorithm>
#define leap(x) (((x%4==0)&&x%100!=0)|| x%400==0)?1:0
using namespace std;
int dayinm[13][2]
{0,0,31,31,28,29,31,31,30,30,31,31,30,30,31,31,31,31,30,30,31,31,30,30,31,31};//这里下标要匹配,特别是int dayinm[0]要十分注意
struct date{
int day;
int mon;
int year;
void next()
{
day++;
if(day>dayinm[mon][leap(year)])
{
day=1;
mon++;
if(mon>12)
{
year++;
mon=1;
}
}
}
};
int buf[32][13][5001];
int main(){
date tmp; //设置中间变量计算每一个年月日对应的cnt
tmp.day = 1;
tmp.mon = 1;
tmp.year=0;
int cnt=0; //cnt就是每一天与0年1月1日之差的天数
while(tmp.year<5000)
{
buf[tmp.day][tmp.mon][tmp.year]=cnt;
cnt++;
tmp.next();
}
date d1,d2;
while(scanf("%4d%2d%2d",&d1.year,&d1.mon,&d1.day)&&scanf("%4d%2d%2d",&d2.year,&d2.mon,&d2.day)!=EOF)
{
cout<<abs(buf[d1.day][d1.mon][d1.year]-buf[d2.day][d2.mon][d2.year])+1<<endl;
}
return 0;
}
阅读全文
0 0
- 第三题 输入年月日求时间差
- js求两个日期时间差。精确到年月日到秒
- java时间差得到年月日
- 年月日输入正确的判断与转换格式,第三章第36题
- 求时间差
- 求时间差
- 求时间差
- 求时间差
- 求时间差
- 求时间差 输入sql.date 输出 年 月 日
- 输入年月日,求该年年初到此时的天数
- 显示年月日(第三章第二题)
- 计算年月日中的时间差,并用天表示
- .net 求时间差
- 求时间差(天数)
- 求两个时间差
- js求时间差
- c语言求时间差
- 接口
- 购物车
- LeetCode 199. Binary Tree Right Side View
- web课堂(11/21)---变色方块选择游戏
- BigDecimal用法之计算等额本金和等额本息
- 第三题 输入年月日求时间差
- Giiso智搜获颁2017高交会初创展最具投资潜力奖
- 一级购物车(自定义view和自定义拦截器interceptor)
- python文件的使用
- 二维数组地址
- 项目中的常用注解
- LeetCode-Rotate Image
- 名片、身份证、银行卡定位矫正算法:基于LSD直线检测,角点确定,透视变换
- 购物车2