代码

1. 最小公约数最大公倍数:
#include
int main()
{
int m,n,q,p;
while(scanf("%d%d",&m,&n)!=EOF){
q=m*n;
while(m%n!=0)
{
p=m%n;
m=n;
n=p;
}
printf("%d %d\n",n,q/n);
}
return 0;
}

2.大数加减:
#include
#include
#define MAX 200
int a1[MAX+10];
int a2[MAX+10];
int a3[MAX+10];
char s1[MAX+10];
char s2[MAX+10];
char s3[MAX+10];
int main(void)
{
scanf("%s", s1);
scanf("%s", s2);
int k=strcmp(s1,s2);
if(k<0)
{
strcpy(s3,s1); strcpy(s1,s2); strcpy(s2,s3);
}
int i,j;
memset(a1, 0, sizeof(a1));
memset(a2, 0, sizeof(a2));
int n1 = strlen( s1);
for(j=0, i=n1-1; i>=0; i--)
a1[j++] = s1[i] - '0';
int  n2=strlen(s2);
for(j=0, i=n2-1; i>=0; i--)
a2[j++]=s2[i]-'0';
for(i=0; i
{
a3[i]=a1[i]+a2[i];
if(a3[i]>=10)
{
a3[i]-=10;
a3[i+1]++;
}
}
for(i=MAX; (i>=0)&&(a3[i]==0); i--);
if(i>=0)
for( ;i>=0; i--)
printf("%d",a3[i]);
else printf("0");
    printf("\n");
    for(i=0; i
    {
    if(a1[i]
    {
a1[i]+=10;
a1[i+1]--;}
a3[i]=a1[i]-a2[i];
}
for(i=MAX; (i>=0)&&(a3[i]==0); i--);
if(i>=0)
    {if(k<0) printf("%d",-1*a3[i]);
else printf("%d",a3[i]);
for( ; i>0; i--)
printf("%d",a3[i]);
}
else printf("0");
printf("\n");
return 0; 
}

3.大数乘法:
#include
#include
#define MAX 200
int main(void)
{
int n1,n2,i,j;
int a[MAX+10],b[MAX+10],c[MAX*2+10];
char s1[MAX+10],s2[MAX+10];
for(i=0; i
for(i=0; i
gets(s1);
gets(s2); 
n1=strlen(s1);
for(j=0,i=n1-1; i>=0; i--)
a[j++]=s1[i]-'0';
n2=strlen(s2);
for(j=0,i=n2-1; i>=0; i--)
b[j++]=s2[i]-'0';
for(i=0; i
{
for(j=0; i
c[i+j]+=b[i]*a[j];
    }
    for(i=0; i
    {
    if(c[i]>=10)
    {
    c[i]%=10;
    c[i+1]+=c[i]/10;
}
}
for(i=MAX*2; (i>=0)&&(c[i]==0); i--)
if(i>=0)
for( ; i>=0; i--)
printf("%d",c[i]);
else printf("0");
return 0;
 } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值