【文件属性】:
文件名称:大整数乘法
文件大小:8KB
文件格式:TXT
更新时间:2015-04-08 09:47:46
大整数
#include "iostream.h"
#include "string.h"
#include "stdlib.h"
int g; //g是接收功能选择的变量
// 加法函数
void out()
{
cout<<" 程序功能:可以完成任意大数的加法,减法和比较大小"<y?m=x:m=y;
ma=m;
i=x-1;
j=y-1;
for(;m>0;i--,j--,m--)
{
if(j=xx)
s=int(a[i])-48+jin; //将字符转换成整型
else if(i=yy)
s=int(b[j])-48+jin;
else if(i>=xx && j>=yy)
s=(int(a[i])-48+int(b[j])-48+jin);
if(s>9)
{
jin=1;
c[m]=char(s+38);
}
else
{
jin=0;
c[m]=char(s+48);
}
}
if(jin==1)
c[0]='1';
else
c[0]=' ';
if(g==1)
{
cout<<"两数相加的结果为:";
if(f==0)
for(i=0;i=0;i--,j--,m--)
{
if(j=xx)
s=int(a[i])-48-jin;
else if(i>=xx&&j>=yy)
s=(int(a[i])-48)-(int(b[j])-48)-jin;
if(s<0)
{
jin=1;
c[m]=char(s+58);
}
else
{
jin=0;
c[m]=char(s+48);
}
}
if(g==1)
{
cout<<"两数相加的结果为:";
if(f==0)
for(i=0;iy)
{
if(a[0]=='-')
cout<<"数一小于数二"<b[i])
{
cout<<"数一小于数二"<b[i])
{
cout<<"数一大于数二"<>a;
cout<<" 输入第二个大数:";
cin>>b;
while(1)
{ cout<<"(1:加法 2:减法 3:比较 4:乘法 5:除法 6:求余)请选择:";
cin>>g;
x=strlen(a);
y=strlen(b);
if(a[0]=='-' && b[0]=='-' && g==1)
{
f=1;
d=3;
add(a,b,x,y,f,d);
}
if(a[0]!='-' && b[0]!='-' && g==1)
{
f=0;
d=0;
add(a,b,x,y,f,d);
}
if(a[0]=='-' && b[0]!='-' && g==1)
{
if(x-1>y)
{
f=1;
d=1;
jian(a,b,x,y,f,d);
}
if(x-1==y)
{
for(int i=0;ib[i])
{
f=1;
d=1;
jian(a,b,x,y,f,d);
break;
}
if(a[i+1]y-1)
{
f=0;
d=2;
jian(a,b,x,y,f,d);
}
if(x==y-1)
{
for(int i=0;ib[i+1])
{
f=0;
d=2;
jian(a,b,x,y,f,d);
break;
}
if(a[i]y)
{
f=1;
d=1;
jian(a,b,x,y,f,d);
}
if(x==y)
{
for(int i=1;ib[i])
{
f=1;
d=1;
jian(a,b,x,y,f,d);
break;
}
if(a[i]y)
{
f=0;
d=0;
jian(a,b,x,y,f,d);
}
if(x==y)
{
for(int i=0;ib[i])
{
f=0;
d=0;
jian(a,b,x,y,f,d);
break;
}
if(a[i]>yn;
if(yn!='Y' && yn!='y')
break;
}
}赞同0| 评论
向TA求助 回答者: PFanAya | 四级采纳率:27%
擅长领域: C/C++
参加的活动: 暂时没有参加的活动
提问者对回答的评价:
谢了
相关内容
2012-2-6 请设计一个有效的算法,可以进行两个n位大整数的乘法运算。 2011-5-31 c语言题目 1.编写两个函数,输入的整数按字符串形式逆序输出,要求... 2011-4-21 用c语言表达,输出 思路写两个例子,不要printf("\n").其次:需... 2 2011-4-3 请你设计个算法,在整数边长的直角三角形ABC的斜边c的长度确定的情... 2009-5-14 如何用栈设计个C语言计算器,高手请跟我说说算法,特别是那些括号... 7 更多相关问题>>
查看同主题问题: 整数 乘法 c++ 算法 长度 两个
其他回答 共2条 2010-10-4 09:56 alfredzzj | 三级
网上很多的呀,Google一下。
按照乘法的运算思想就可以,这是每次都将进位缓存起来。 赞同0| 评论 2010-10-5 13:44 陈学阳 | 十二级
感觉这个好~~你可以挨着比较两个字符,需要匹配的可以不去比较,或者是问号的就当成是相等的字符
bool Match(const char* pSrc,const char* pMatch)
{
while(*pSrc!=0)
{
if(*pMatch==0)
return false;
if(*pMatch != '?' && *pSrc != *pMatch)
return false;
pMatch++;
pSrc++;
}
if(*pMatch!=0)
return false;
else
return true;
}