请教如何设计一个大型整数类,用来计算2的3000次方.
给个性能可以接受的算法.谢谢.

解决方案 »

  1.   

    我有个思路,是我以前想得,不过自己还没有做过测试
    用一个CString变量来记录结果 然后逐位取出*2 进位用一个BOOL变量记录 循环3000次CString sum=1,num;//num用做中间变量
    BOOL record;   //记录是否进位
    int len,nummber,m;    
    for(int i=1;i<=3000;i++)
    {
       len=sum.GetLength();    // 得到当前结果数的长度,即位数,用做循环次数使用
       for(int j=0;j<len;j++)
        {
          if(record=TRUE){m=atoi(sum.GetAt(j))+1;}   //判断上次是否进位
          else{m=atoi(sum.GetAt(j));}      
          nummber=m*2;                    //计算
          record=FALSE;           //还原记录数
          if(nummber>9){nummber=nummber%10;record=TRUE;}   //判断是否进位
          num.Format("%d%s",nummber,num);         //记录临时结果
        }
        sum=num;            //把临时结果赋给中间结果,进入下次运算
    }
    大概就是这个意思了,不知道有什么地方写错没有。有什么地方不懂的你可以提出来
    不知道这行不行得通,还请高手指正