| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 856 人关注过本帖
标题:[推荐]参赛多位整数的加法与乘法发表啊!
只看楼主 加入收藏
CoolFlyTow
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2004-9-16
收藏
 问题点数:0 回复次数:1 
[推荐]参赛多位整数的加法与乘法发表啊!

哈哈,我先出个题目。 1.编写一个400位整数加法程序的。 2编写一个200位×200位的程序。 看谁用的内存最少?

下面是我的作品,不过使用C++写的。

如果要计算400位的加法一般需定义maxN=398。(10^400/256)

[此贴子已经被作者于2004-10-17 15:34:59编辑过]

搜索更多相关主题的帖子: 加法 整数 乘法 内存 
2004-10-17 15:29
CoolFlyTow
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2004-9-16
收藏
得分:0 

#include <iostream> #include <limits>

using namespace std;

/*********************************************************** 下面是我定义的函数用于计算的(用于解决计算时丢失数据精度的问题) 在其中存储的都是——》十六《——进制数 ***********************************************************/ //////////////////////////////// const maxN=400;//如果要计算更大的数请更改

//注意由于在这里没有字节类型的就使用了char来存放数值 //在这里source1里存储的不是字符数值,而是16进制的数 //这里的方法主要是借鉴了汇编语言中处理大数值相乘相加的方法 //addMyArray返回值用于判断是否溢出 //而mulMyArray不存在益处的问题 bool addMyArray(unsigned char source1[maxN],unsigned char source2[maxN])//source1+source2->source1 { unsigned int i=0; unsigned int tmp=0; unsigned char carry=0;

for(i=0;i<maxN;i++) { tmp=source1[i]+source2[i]+carry; source1[i]=static_cast<unsigned char>(tmp); carry=static_cast<unsigned char>(tmp>>numeric_limits<unsigned char>::digits); } if(carry==0) { return true; } else { return false; } }

//source1*source2->direct void mulMyArray(unsigned char source1[maxN],unsigned char source2[maxN],unsigned char direct[2*maxN]) { unsigned int i=0,j=0; unsigned int tmp=0,tmp2=0;

for(i=0;i<arrayMaxN;i++) { direct[arrayMaxN]=0; }

for(i=0;i<maxN;i++) { tmp=source2[i]; for(j=0;j<maxN;j++) { tmp*=source1[j]; direct[i+j]+=static_cast<unsigned char>(tmp); direct[j+i+1]+=static_cast<unsigned char>(tmp>>numeric_limits<unsigned char>::digits); } } } /************************************************************************* 上面是我自定义的函数用于计算的 ***********************************************************************/


2004-10-17 15:29
快速回复:[推荐]参赛多位整数的加法与乘法发表啊!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019122 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved