ACM(遞迴遞推 J)

2021-07-29 21:10:53 字數 498 閱讀 5652

題目:輸入乙個數n(不能是1111,2222,3333這類數)然後將這個數重新排列形成乙個最大的數最小的數,然後這兩個數的差如果等於6174這停止,輸入乙個四位數n然後按要求重新排列候做差,輸出每個做得差,然後換一行輸出差的個數。

解題思路:定義乙個函式,將n的個十百千位存入陣列中,然後在分別成1000,100,10組成新的四位數。做差,當差為6174時停止。

細節處理:利用sort函式排序。

**:#include

using namespace std;

int a[4],j=0;

int f(int n)

sort(a,a+4);

b=a[3]*1000+a[2]*100+a[1]*10+a[0];

c=a[0]*1000+a[1]*100+a[2]*10+a[3];

d=b-c;

cout<>n)

f(n);

return 0;

}感想:運用sort函式排序更加快捷。

ACM 遞迴與遞推

看圖可知,由於蜜蜂每次只能從前1個蜂房前2個蜂房過來,從第n歌蜂房考慮 那麼f n f n 2 f n 1 注意數列的開始幾項會有所不同。f 1 0,因為蜜蜂開始在第1個蜂房 f 2 1,蜜蜂只能從第1個蜂房來到第2個蜂房 f 3 2,蜜蜂可以從第1個蜂房過來,也可以從第2個蜂房過來 即 f n f...

ACM遞迴遞推練習

acm遞迴遞推練習 二分法查詢找到中間的數值,如果key目標數值大於中間值,則返回mid 1與n區間。如果小於,則返回mid 1與起始位置區間,由於輸出次數較多,用cout容易超時,用printf則可省時。include int a 3000001 int search int a,int l,in...

遞推遞迴練習 J題

題目描述 任意乙個4位自然數n n不能是4個數字一樣,如1111 2222 9999是不可以的,n也不能是6174 將組成自然數n的4個數字重新排列,形成乙個最大數和最小數,最大數和最小數相減,其差還是自然數,將差的各數字再重新排列,又形成乙個最大數和最小數,最大數和最小數相減,其差還是自然數。反覆...