c语言程序开发范例宝典 光盘,【图片】求闲置的以下几本书:《C语言程序开发范例宝典》、《C语言范例【西北师范大学知行学院吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

没有接触过大整数乘法的问题,不过我倒是遇到了大整数加法的题,程序是c++不过无妨,只是格式上出现了点不一样~~

#include

#include

using namespace std;

//str1、str2接受两个大整数输入并将它们转化至整形数组a1、a2中

char str1[201],str2[201];

int a1[200]={0},a2[201]={0};

int main()

{

//i为循环变量

int i;

//输入

cin>>str1>>str2;

//len1、len2记录两个数组的长度

int len1=strlen(str1);

int len2=strlen(str2);

//将str1、str2中的字符转化为数字,存入a1.a2中,每个元素只保存大整数的一位数字其中a1[0]为低位、a1[len1-1]为高位

for(i=0;i

a1[i]=str1[len1-1-i]-'0';

for(i=0;i

a2[i]=str2[len2-1-i]-'0';

//从低位到高位做加法,并直接保存至a2

//大整数最大200为,所以至多加200次----这样比较容易些程序,但并不环保

for(i=0;i<200;i++){

a2[i]+=a1[i];

if(a2[i]>=10){ //判断是否进位,两个数字做加法,进位最多只能为1

a2[i]-=10;

a2[i+1]++; //进位加到a2

}

//不进位就不用处理啥

}

//做完加法,最多201位,我们先找最高位非0的数

for(i=200;i>=0;i--)

if(a2[i]!=0)

break;

//既然找到了最高位非0的数,则向最低位输出

if(i==-1) //如果结果为0.也就是所有的a2[i]都为0.此时i=-1.直接输出0

cout<<0;

else

for(;i>=0;i--)

cout<

cout<

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值