?? 大數(shù)問題.cpp
字號(hào):
#include <stdio.h>
#include <string.h>
#define LEN 200
int Input(char n[]) // 輸入數(shù)據(jù)
{ char s[LEN];
int i,l;
for(i=0;i<LEN;i++)
n[i]=0;
if(scanf("%s",s)<1) return -1;
l=strlen(s);
for(i=0;i<l;i++)
n[i]=s[l-i-1]-'0';
return 0;
}
void Print(char n[]) //輸出數(shù)據(jù)
{
int j;
for(j=LEN-1; j>0; j--)
if(n[j]!=0) break;
for(; j>=0; j--)
printf("%d", n[j]);
printf("\n");
}
void Add(char a[], char b[], char d[]) //兩數(shù)加法
{ int i;
for(i=0; i<LEN; i++)
d[i]=a[i]+b[i];
for(i=0; i<LEN-1; i++)
{
if(d[i]>=10)
{
d[i+1]+=d[i]/10;
d[i]=d[i]%10;
}
}
}
void Mul(char a[], char b[], char c[]) //兩數(shù)乘法
{
int i, j;
for(i=0; i<LEN*2; i++)
c[i]=0;
for(i=0; i<LEN; i++)
{ for(j=0; j<LEN; j++)
{ c[i+j]+=a[j]*b[i];
if(c[i+j]>=10)
{ c[i+j+1]+=c[i+j]/10;
c[i+j]=c[i+j]%10;
}
}
}
}
void main()
{ char a[LEN],char b[LEN],char c[2*LEN],char d[LEN+1];
printf("請(qǐng)輸入一個(gè)大數(shù):");
Input(a);
Print(a);
printf("請(qǐng)?jiān)俅屋斎胍粋€(gè)大數(shù):");
Input(b);
Print(b);
printf("加法的結(jié)果是:");
Add(a,b,d);
Print(d);
printf("乘法的結(jié)果是:");
Mul(a,b,c);
Print(c);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -