请教如何设计一个大型整数类,用来计算2的3000次方.
给个性能可以接受的算法.谢谢.
给个性能可以接受的算法.谢谢.
解决方案 »
- 求高手,帮我编译一段VC6代码,并教给我怎么能让我在本机编译成功
- MFC程序,编译能够通过,可执行时不弹出窗口的问题——你怎么看?
- 读取数据找人帮忙
- 关于抓包的问题
- 如何获得当前系统设置的窗体的颜色?
- 请问单击Windows的开始菜单右边的“显示桌面”按钮,我的应用程序窗口会收到什么消息?
- 如何进行边界拾取?在线等~谢谢
- 考mcsd最好先看看什么书呀?200分
- 谁能详细讲一下UpdateAllViews()的用法。
- 求助:有关vc编译时头文件gl.h中有这样的错误怎么办?
- 网络版麻将游戏值多少钱...
- 谁有 vc++ +sql server数据库应用系统开发与实例 的光盘么?能做个iso传给我么?
用一个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; //把临时结果赋给中间结果,进入下次运算
}
大概就是这个意思了,不知道有什么地方写错没有。有什么地方不懂的你可以提出来
不知道这行不行得通,还请高手指正