交大oj 1008 二哥買期貨 C 總結

2021-08-10 23:57:36 字數 1780 閱讀 1774

這個公式可以根據日期計算這一天是星期幾,具體公式如下:

w= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7

//這個函式返回的結果是0-6的整數,表示星期一到星期天

int getweeknumber(int year, int month, int day)

return ((day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7);

}

現在這道題還沒有ac,總體思路待寫完後再補充。

#include 

#include

using

namespace

std;

int dayofmonth[2][13] = , };

//定義日期的結構體,用來判斷平年閏年,判斷某個日期是這週的第幾天

//這個方法要將每年的1,2月作為上一年的13,14月份

struct date

int week()

int w = (d + m * 2 + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;

return w + 1;

}date() {}

//定義輸出建構函式

date(int yy, int mm, int dd)

//定義結構體函式getnext(),獲得後一天的日期

date getnext()

//月和日為12.31則年往上加,月和日均設為1月1日

else

return t;

}//判斷是否為**處理的日期

//如果這天是週六週日則不為處理日期,如果這天是元旦、五

一、十一也不為處理日期

bool dealday()

//判斷是否為週末

bool isweekend()

};//判斷這兩天是否為相等的日期,如果年月日均相等,則是相同的日期

bool equals(date d1, date d2)

//判斷一年中有多少天交易日

int ansofyear(int year)

//如果是平年的話,52週多1天,即12.31如果是週末則非交易日多一天

else

//元旦+五一+國慶==11天的假期不交易

t2 = 11;

//判斷這三個假期是否和週末衝突,衝突的有幾天

if (date(year, 1, 1).isweekend())

t3 += 1;

for (i = 1; i<4; i++)

if (date(year, 5, i).isweekend())

t3 += 1;

for (i = 1; i<8; i++)

if (date(year, 10, i).isweekend())

t3 += 1;

//計算一年中多少個交易日

res = res - t1 - t2 + t3;

return res;

}int main()

//如果兩個日期相差一年以上,則先計算第乙個日期到下一年1.1之前的交易日

//再計算第二個日期的從1.1到該日期的交易日數

//最後再計算二者之間相差的年數之間的交易日

else

return0;}

//****於網路,注意消化理解

後續待補充….

1008 二哥買期貨

對起始年份和結束年份,可以對每一天單獨判斷 對中間的每個整年,週末總的天數分為兩部分 1.每個整年恰有完整的52個周,所以至少有 2 52 天是週末 2.閏年時,366 7 2,需要判斷12 31和12 30是否為週末即可,平年需要判斷12 31是否為週末 對中間的每個整年,都有11天假日,注意週末...

1008 二哥買期貨

二哥想知道在一段時期內,一共有多少個交易日。交易日的限定如下 週六 週日不能交易 元旦期間 1月1日 不能交易 五一勞動節期間 5月1日至3日 不能交易 十一國慶節期間 10月1日至7日 不能交易 沒有在上述要求中提到的日期均可交易 第一行有乙個整數n,表示一共有n組資料。每組資料都有一行,是兩個用...

上海交大oj 1053 二哥的記憶體

二哥買了一台記憶體非常非常大的電腦,以至於二哥寫程式直接開了乙個 100,000 100,000 的陣列都跑得很順暢。這個陣列初始被清零,二哥在其中的 n 個位置賦了值,然後他做了 m 次操作,每次操作為以下三個指令之一 0 x y 交換陣列的 x 行與 y 行 1 x y 交換陣列的 x 列與 y...