發郵件 c 解法,個人思路

2021-09-25 15:11:08 字數 951 閱讀 2200

發郵件nowcoder每天要給很多人發郵件。有一天他發現發錯了郵件,把發給a的郵件發給了b,把發給b的郵件發給了a。於是他就思考,要給n個人發郵件,在每個人僅收到1封郵件的情況下,有多少種情況是所有人都收到了錯誤的郵件?

即沒有人收到屬於自己的郵件。

輸入描述:

輸入包含多組資料,每組資料報含乙個正整數n(2≤n≤20)。

輸出描述:

對應每一組資料,輸出乙個正整數,表示無人收到自己郵件的種數。
示例1

2

3

1

2

解法步驟:這道題的本質是錯排演算法----具體方法就是找準d(n)的狀態轉換方程,

我的方法是對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...