求反序演算法
1. 廣義表反序演算法細節
大神啊。。。我也等著發帖呢。。。同求
2. 反序數是什麼
在n個數碼1,2,…,n的全排列j1j2…jn中,若一個較大的數碼排在一個較小的數碼的前面,則稱它們構成反序,亦稱逆序,這個排列的所有反序的總和,稱為這個排列的反序數,記為τ(j1j2…jn)或π(j1j2…jn)。
例如,在四個數碼的排列3142中,3與1,3與2以及4與2都構成反序,因此τ(3142)=3。反序數為奇數的排列稱為奇排列,反序數為偶數的排列稱為偶排列。在n (n>1)個數碼的全體n!個排列中,奇、偶排列的個數相等,即都為n!/2個,這決定了在n階行列式的展開式的n!項中正負項各半 。
思維操
1、已知互為反序數的兩個數的積是92565,求這兩個數。
2、一個四位數,已知其十位數加1等於其個位數,其個位數加1等於其百位數。這個四位數與其反序數相加,和是10769,求這個四位數。
3、有一個四位數,各位上的數字都不相同,且十位上的數比個位上的數大2,這個四位數比它的反序數小4905,求這個四位數。
4、用1、2、3、4、5這5個數字組成一個五位數,如果要使這個五位數與它的反序數的差盡可能小,那麼乘積最小是多少?
5、用1、2、3、0這4個數字組成一個四位數,如果要使這個四位數與它的反序數的積盡可能小,那麼乘積最小是多少?
6、王小妮是新城學校九(1)班的學習委員,今年她的年齡正好和數學老師的年齡是一對互為反序數,他們年齡的差恰好又是語文老師的年齡,已知語文老師是一位大學畢業才5年的青年教師。你能說出他們三人的年齡嗎?
1 輸入要計算的數。
2 通過循環取余,計算出反序數。
3 將二者相加,並輸出結果即可。
代碼:
#include<stdio.h>
intmain()
{
intn,t,f;
scanf("%d",&n);//輸入數值。
t=n;
f=0;
while(t)
{
f*=10;
f+=t%10;
t/=10;
}//計算反序數
t=f+n;//和值。
printf("%d ",t);//輸出結果。
return0;
}
4. 求一個任意多位數逆序輸出的演算法,C語言實現
我的方法比較笨拙:
①先算數字有多少位;
②第二次循環中,將輸入數字除以10 的余數 乘(數字位數 - 循環次數);
intmain(void){
intnumber,m,digits,number2,i,n,temp;
printf("Enteranumber:");
scanf("%d",&number);
n=0;
temp=number;
do{
n++;
temp/=10;
}while(temp>0);
digits=0;
number2=0;
do{
digits++;
m=number%10;
number/=10;
for(i=0;i<n-digits;i++){
m*=10;
}
number2+=m;
}while(number>0);
printf("Thenumberis%d ",number2);
return0;
}
希望有更好的寫法,感謝!
5. 將一排列的數字顛倒過來後反序數怎麼算
將一個排列的數字顛倒過來之後,求反序數的話,應該在計算過程中應該先把它的設備功能先計算出來,然後才能夠完成具體的計算方式。
6. 反序數的例題
例1、n是一個五位數,若n的反序數是4的倍數,則n最大是( ),最小是( )。
例2、有一個兩位數,十位數字比個位數字多1。如果把十位數字與個位數字調換後,就得到另一個兩位數,把這兩個數相加,和是165。求原來的兩位數。
例3、把一個兩位數的個位數字與其十位數字交換後得到一個新數,它與原數相加,結果恰好是一個自然數的平方,這個平方數是多少?
例4、一個兩位數,交換它們的個位和十位上的數字,則它們差的個位上的數字是4,求這個兩位數。
例5、兩個數互為反序數,他們的積是1944,求這兩個數
例6、老師報出一個四位數,將這個四位數的各位數字順序顛倒後得到一個新的四位數,再把這兩個四位數相加,甲的答案是7776,乙的答案是7766,丙的答案是7666,丁的答案是7676。已知他們四人的答案只有一個是正確的,請問哪個人的答案是正確呢?
例7、將一個四位數的數字順序顛倒得到一個新的四位數,新數比原數大7992,那麼所有符合條件的四位數中,最大的數是多少?
例8、有一個五位數,將其各位數字順序顛倒過來組成的新五位數與原來數的和是58485。已知這個五位數的前三位組成的三位數是9的倍數,後兩位組成的兩位數是7的倍數,那麼這個五位數是多少?
例9、用1、3、5、7這四個數字組成一個四位數,使這個四位數與它的反序數的積盡可能大,這個最大的乘積是多少?
7. 誰知道求字元串反序的演算法
什麼語言?
比如字元串變數是ZFC
X=LNE(ZFC)
DIM A()
RMDIM A(X)
FOR R=0 TO X-1
A(R)=LEFT(ZFC,R)
NEXT R
FOR T=1 TO X-1
A(T)=A(T)-A(T-1)
NEXT T
FOR S=X TO 0 STEP -1
ZFCA=ZFCA+A(S)
NEXT S
搞定,ZFCA是輸出
8. C語言中怎麼求一個數的反序數
不用求原來的數字到底是幾位,直接用取余數乘10的方法就可以了。
9. 那個三堆塔將正序變為反序的演算法
10次,
把1依次調換需要4次,然後2需要3次,3需要2次,4需要1次,總共10次