發郵件nowcoder每天要給很多人發郵件。有一天他發現發錯了郵件,把發給a的郵件發給了b,把發給b的郵件發給了a。於是他就思考,要給n個人發郵件,在每個人僅收到1封郵件的情況下,有多少種情況是所有人都收到了錯誤的郵件?
即沒有人收到屬於自己的郵件。
輸入描述:
輸入包含多組資料,每組資料報含乙個正整數n(2≤n≤20)。
輸出描述:
對應每一組資料,輸出乙個正整數,表示無人收到自己郵件的種數。示例1
23
1解法步驟:這道題的本質是錯排演算法----具體方法就是找準d(n)的狀態轉換方程,2
我的方法是對d(4) 進行分析:
首先,兩個一組,可以分成三組:
即:(a,b,c,d)-----》((a,b),(c,d)) ,((a,c),(b,d)),((a,d)(b,c))
其次,三個一組,也可分為三組
即:((a,b,c),(d)),((b,c,d),(a)),((a,c,d),(b))
又因為三個一組時,可以有兩種不同的順序,即正轉和反轉--多出的乙個元素加入序列中對於順序多少無影響,只是多了乙個中轉站
a-》b-》c-》a------------》a-》b-》c-》d-》a
c-》b-》a-》c------------》c-》b-》a-》d-》c
由此可得到乙個大概規律,
d(n)=(n-1)*(d(n-2)+(d(n-1));
#includeusing namespace std;
int main()
while (cin >> n)
return 0;
}
C 發郵件例子
我相信這對於使用過c 發郵件的過來人來說,太不屑一顧了,呵呵,我是第一次發現原來我也能寫blog的地方,所以急手之急,就隨便弄出些文字看看效果再說的喲,但對於初次使用c 發郵件應該還是有一點幫助的.費話少說了,看看下面的 對你有用否?class sendmailer tpmail.tpserver ...
C 發郵件方法
前幾天,有個系統需要增加乙個發郵件的功能,於是寫了乙個方法,如下 view code 1 2 3 4 郵件伺服器位址 5 發件人郵箱位址 6 收件人郵箱位址 7 發件人郵箱使用者名稱 8 發件人郵箱密碼 9 郵件主題 10 郵件正文 11private void sendemail string c...
c 發郵件簡單例項
這個程式用的是阻塞式socket模型,傳送完資料後需要接收返回值,才能接著傳送。本程式不傳送郵件附件,發附件的例項 include include include 適用平台 windows using namespace std pragma comment lib,ws2 32.lib 鏈結ws2...