求反序算法
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次