zoukankan      html  css  js  c++  java
  • 1992年高级程序员下午试题6

    阅读下列程序说明和 C 程序,把应填入其中__n__ 处的字句,写在答卷的对应栏内。

    [程序说明]

    (1)本程序利用辗转相除法求两个均不超过100次的多项式A,B的最大公因式。

    例: A(x)=x3一x2+x一1=(x2+1)(x一1)

    B(x)=x5一7x4十7x3-3x2+6x+4=(x2+1) (x3-7x2十6x+4)

    最大公因式为x2+1。

    (2)辗转相除法的算法如下:

    用其中的一个多项式去除另一个多项式;然后,将所得余式变成除式,原除式变成被除式。如此反复相除,当余式为。时,当前除式即为最大公因式。

    [程序]

    #include <stdio.h>

    #include <math.h>

    #define DECISE.0005

    #define MAX_POWER 100

    main( )

    { int i,a,b;

      float Ca[MAX_POWER+1],Cb[MAX _POWER+1];

      void Remainder();

      scanf("%d",&a);

      for ( i=0;i<=a;i++ )

      scanf( "%f",&Ca[i] );

      scanf( "%d",&b) ;

      for ( i=0;i<=b;i++ )

        scanf( "%d",&Cb[i] );

      Remainder(Ca,Cb,a,b);

    }

    void Remainder(Pointer A,Pointer B,a,b)

    float *Pointer A,*Pointer B;

    int a,b;

    { float x,y,*Temp;

      int i,j,F1ag=1;

      while ( Flag )

      { i=0;

       while ( PointerB[i]==0 )

       { i ++;b一-;

         Pointer B+=i-- ;

       }

       x=Pointer[i];

       while ( i<=b )

       PointerB[i++]/=x;

       for ( i=0;i<=a-b;i++ )

       { X=Pointer A[i] ;

        for(j=0;j<b ; j++) 

        { y = PointerA[i+l+j]一x * PointerB[j+1];

         PointerA[ i+1+j ]=

         ( y<DECISE&&-y<DECISE )?0.0;y;

        }

        }

        Temp=Pointer A;

        PointerA=PointerB; ·

        PointerB =(a>=b)?Temp+a-b-1:Temp;

        a=b--;

        for ( Flag=0,i=0;i<b && Flag==0;i++ )

        if ( PointerB[i] !=0.0 ) Flag=1;

      }

      printf( "The Greatest Common Factor is:\n");

      for ( i=0;i<a;i++ )

        if ( PointerA[i]!= 0.0)

      printf( "%5.3f *x ∧%d%s",

      PointerA[I],a-i,( PointerA[i+1]<0.0 ) ?"":"+" );

      printf( "%5.3f\n",PointerA[a] );

    }

  • 相关阅读:
    PHP观察者模式
    php减少损耗的方法之一 缓存对象
    php迭代器模式
    数据库安全措施的改进依据------未实践
    mysql利用phpmyadmin导入数据出现#1044错误 的可能原因
    两列布局的基本思路
    less1.5中的减错误
    ie63像素bug原因及解决办法不使用hack
    镜像翻转二叉树
    判断一个整数是否是 2 的幂次方
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2098566.html
Copyright © 2011-2022 走看看