題目描述
小明是個馬大哈,經常忘了,今天是星期幾,於是他會去找三金問今天是星期幾。三金也忘記了,但是三金那裡有個記錄,為n天前是yyyy年mm月dd日星期w,問你今天的日期和星期幾。
輸入第一行: t 表示以下有t組測試資料 ( 1≤ t ≤8 )
對每組資料, 佔一行:
yyyymmdd w n (20000101≤yyyymmdd≤20180527 1≤w≤ 7 1 ≤n≤ 8000 )
輸出對每組測試資料,輸出佔一行,格式為:yyyymmdd w ( 中間乙個空格 )
樣例輸入
220180527 7 1
20180214 3 289
樣例輸出
20180528 1
20181130 5
題解:
#include
#include
#include
#include
using namespace std;
inttransform_day
(int year,
int month,
int c)
//將資料中的總天數計算出來
if(year%4!=
0||year/
100%4!=
0)return sum;
}/*int transform_year(int day)
*/int
transform_month
(int day)
//判斷其是在哪個月
if(day<
334&&day>=
304||day<
335&&day>=
305)
if(day<
304&&day>=
273||day<
305&&day>=
274)
if(day<
273&&day>=
243||day<
274&&day>=
243)
if(day<
243&&day>=
212||day<
243&&day>=
213)
if(day<
212&&day>=
181||day<
213&&day>=
182)
if(day<
181&&day>=
151||day<
182&&day>=
152)
if(day<
151&&day>=
120||day<
152&&day>=
121)
if(day<
120&&day>=
90||day<
121&&day>=91)
if(day<
90&&day>=
59||day<
91&&day>=60)
if(day<
59&&day>=
31||day<
60&&day>=31)
if(day<=31)
}int
main()
year=d[7]
*1000
+d[6]*
100+d[5]
*10+d[4];
month=d[3]
*10+d[2];
day1=d[1]
*10+d[0];
//求出其資料的年月日
week1=
(week+day)%7
;//求出往前數day天之後是週幾
day2=
transform_day
(year,month,day1)
;//求出總天數
//cout(day2+day>=
365)
//如果總天數大於一年,年數就加一
//couttransform_month
(day2+day)
;//換算為月數
day3=day2+day-
transform_day
(year,month1,0)
;//求出剩下的天數
// cout(month1<10)
else
//輸出結果
}return0;
}//寫的**有點長,請見諒
列舉暴力求解
題目描述 有n個賭徒打算賭一局。規則是 每人下乙個賭注,賭注為非負整數,且任意兩個賭注都不相同。勝者為賭注恰好是其餘任意三個人的賭注之和的那個人。如果有多個勝者,我們取賭注最大的那個為最終勝者。例如,a,b,c,d,e分別下賭注為2 3 5 7 12,最終勝者是e,因為12 2 3 7。輸入輸入包含...
暴力求解總結
輸入正整數n,按從小到大的順序輸出所有形如abcde fghij n的表示式,其中a j恰好為數字0 的乙個排列 可以有前導0 2 n 79。樣例輸入 62 樣例輸出 79546 01283 62 94736 01528 62 分析 分成兩部分加一些細節處理。列舉數字 分母 至少是四位數,從1000...
暴力求解法
1 簡單列舉 輸入正整數n,按從小到大的順序輸出所有形如abcde fghij n的表示式,其中a j恰好位數字0 9的乙個排序 可以有前導0 2 n 79.樣例輸入 樣例輸出 79546 01283 62 94736 01528 62 思路 只要列舉fghij就可以算出abcde,然後判斷所有數字...