題目:輸入乙個數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個數字重新排列,形成乙個最大數和最小數,最大數和最小數相減,其差還是自然數,將差的各數字再重新排列,又形成乙個最大數和最小數,最大數和最小數相減,其差還是自然數。反覆...