//獲得當月的資訊
time_t currtime(time(null));
tm curr;
localtime_s(&curr, &currtime);
/*蔡勒(zeller)公式(只適合於2023年10月15日之後的情形):
w = y + [y/4] + [c/4] - 2c + [13(m+1)/5] + d - 1
c:世紀數減一(年的高兩位數);
y:年(年的低兩位數);
13、14月來計算,比如2023年1月1日要看作2023年的13月1日來計算);
d:日;
代表取整,即只要整數部分。
w:星期;w對7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,
5-星期五,6-星期六
注意負數不能按習慣的餘數的概念求餘數,只能按數論中的餘數的定義求餘。為了
方便計算,我們可以給它加上乙個7的整數倍,使它變為乙個正數。
*///
int year= curr.tm_year+1900;
int month=curr.tm_mon+1;
int mday=1;//當月1號星期幾
if ( month < 3 )
int c = int(year / 100), y = year - 100 * c;
int w = int(c / 4) - 2*c +y +int(y/4) +(26 * (month + 1)/10 ) + mday - 1;
w = ( w % 7 + 7 ) % 7;
w=(w==0)?7:w;
int firstfridy=(w<=5)?(5-w+1):(9-w+4);
int last=firstfridy+14;
cout//int cardinar=0;
//if(w<2)
//cardinar=w+6;
//else
// cardinar=w-1;
//求的第幾周 星期幾
//bool t1=(cardinar+curr.tm_mday)/7+1>=3;
cout<<((cardinar+curr.tm_mday)/7)+1<<"周 ";
//bool t2=((cardinar+curr.tm_mday)%7)>=5;cout<<"周"<<((cardinar+curr.tm_mday)%7)/第幾周 星期幾
輸出第幾個到第幾個素數
if flag 0 counter 發現乙個素數 if flag 0 counter m counter n if counter n break return 0 這題耗費了我將近兩天的時間,各種小細節層出不窮。可能也是因為很久沒有上手的原因,除了很多問題。首先最大的乙個錯誤,就是flag 1 這...
第幾個質數
按需輸出第k個質數,要找的質數靠後時,所需時間較長,這裡給出幾種最基本的求第k個質數的方法 法一 include include include include include 生成質數表 int printprimelist int arr if i tmp 1 尋找完畢 for i 0 i pr...
我排第幾個?
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 現在有 abcdefghijkl 12個字元,將其所有的排列中按字典序排列,給出任意一種排列,說出這個排列在所有的排列中是第幾小的?輸入 第一行有乙個整數n 0 輸出 輸出乙個整數m,佔一行,m表示排列是第幾位 樣例輸入 3 a...