没那么简单呦,255*256^5用Long是装不下的!!!

解决方案 »

  1.   

    那就用两个或三个long,用于处理溢出,反正不会很困难。
      

  2.   

    #include <stdio.h>
    #include <iostream.h>typedef unsigned long ULONG;ULONG div900(ULONG &Hi, ULONG &Lo)
    {
      ULONG i, j;  i=Hi/900;
      j=Hi%900;
      Lo+=j<<16;
      Hi=i;
      i=Lo/900;
      j=Lo%900;
      Lo=i;
      return (j);
    }void calc(ULONG a1, ULONG a2, ULONG a3, ULONG a4, ULONG a5, ULONG a6,
      ULONG &x1, ULONG &x2, ULONG &x3, ULONG &x4, ULONG &x5)
    {
      ULONG Hi, Lo;  Hi=(a1<<24)+(a2<<16)+(a3<<8)+a4;
      Lo=(a5<<8)+a6;  x5=div900(Hi, Lo);
      x4=div900(Hi, Lo);
      x3=div900(Hi, Lo);
      x2=div900(Hi, Lo);
      x1=div900(Hi, Lo);
      return;
    }
    void main(void)
    {
      ULONG a1, a2, a3, a4, a5, a6;
      ULONG x1, x2, x3, x4, x5;  cout<<"Please 6 number:";
      cin>>a1>>a2>>a3>>a4>>a5>>a6;
      cout<<a1<<"*256^5+"<<a2<<"*256^4+"<<a3<<"*256^3+"<<a4<<"*256^2+"<<a5<<"*256+"<<a6<<"="<<endl;
      calc(a1, a2, a3, a4, a5, a6, x1, x2, x3, x4, x5);
      cout<<x1<<"*900^4+"<<x2<<"*900^3+"<<x3<<"*900^2+"<<x4<<"*900+"<<x5<<"="<<endl;
      return;
    }