C语言长整数运算
笔记本锁-新员工入职登记表
#include
#include
#define N 500
void plus()
加法
{
}
void minus() 减法
{
char stra[N],strb[N];
int numa[N],numb[N],c[N],len,i,flag=0;
cout<<请输入要进行减法运算的两个长整数<
len=strlen(stra)>strlen(s
trb)?strlen(stra):strlen(strb);
numa[strlen(stra)-1-i]=stra[i]-'0';
char
stra[N],strb[N];
int
numa[N],numb[N],c[N],len,i;
cout<<请输入要进行加法运算的两个长整数<
len=strlen(stra)>strlen(s
trb)?strlen(stra):strlen(strb);
for(i=0;i
for(i=0;i
c[len]=0;
for(i=0;i
}
if(c[len]!=0) cout<
cout<
c[i]=c[i]%10;
numb[strlen(strb)-1-i]=strb[i]-'0';
numb[i]=0;
for(i=strlen(strb);i
numa[i]=0;
for(i=0;i
}
void multiply()
{
char
stra[N],strb[N];
int numa[N],numb[N],i,j,k,dm=0;
int
c[N][N],d[2*N];
cout<<请输入要进行乘法运算的两个长整数<
for(i=strlen(stra);i
for(i=0;i
for(i=0;i
for(i=0;i
c[i+1]=c[i+1]+c[i]10;
c[i]=c[i]%10;
c[i]=numa[i]+10-numb[i];
numa[i+1]--;
numb[strlen(strb)-1-i]=strb[i]-'0';
numb[i]=0;
cout<
cout<
}
c[strlen(stra)-1]=c[strlen(stra)-1]%10;
for(i=strlen(stra)-1;i>=0;i--) 输出c,从第一个不为的位置输出
{
if(c[i]!=0)
flag=1;
cout<
}
cout<
}
int main()
{
int choice;
for(j=0;j
for(i=0;i
for(j=0;j
for(k=0;k
}
for(k=(strlen(stra)-strlen(strb)+1)
;k
}
for(i=(dm-1);i>0;i--)
整理d,每一位大于的向上一位置进
{
}
cout<
cout<
d[i]=d[i]%10;
for(i=1;i<(strlen(strb)-1);i++)
for(j=0;j
if((strlen(strb)-1+k-i-j)==0)
c[strlen(strb)-1][k]+=c[i][j];
d[dm++]=c[strlen(strb)-1][k];
for(i=1;i
for(j=0;j
if((k-i-j)==0)
c[0][k]+=c[i][j];
d[dm++]=c[0][k];
c[i][j]=numb[i]*numa[j];
c[i][j]=0;
d[i]=0;
numa[i]=stra[i]-'0';
numb[i]=strb[i]-'0';
for(i=0;i<2*N;i++)
for(i=0;i
while(1)
{
}
return 1;
}
cout<<;
cout<<长整数的运算
;输入一个选择功能菜单
cout<<;
cout<<长整数的加法
cout<<长整数的减法
cout<<长整数的乘法
;
cout<<退 出
cout<<;
cout<<请选择菜单号(--3)进行操作:;
cin>>choice;
switch(choice)
{
case 1:
}
plus()
break;
minus();
break;
multiply();
break;
return 0;
case 2:
case 3:
case 0: