百练 2980 大整数乘法

题目链接:http://bailian.openjudge.cn/practice/2980

#include<stdio.h>  
#include<string.h>  
void xx(char a[],int x[])  
{   
   int i,k,j;   
   j=k=strlen(a);   
   for(i=0;i<k;i++)       
      x[--j]=a[i]-48;  
}  
int main()  
{    
   int i,w,j,k,lenx,leny,x[202],y[201],p1[402];     
   char a[201],b[201];     
   memset(p1,0,sizeof(p1));     
   scanf("%s%s",a,b);     
   xx(a,x);     
   xx(b,y);     
   lenx=strlen(a);     
   leny=strlen(b);      
   for(i=0;i<leny;i++)      
   {        
      w=i;        
      for(j=0;j<lenx;j++)          
         p1[w++]+=y[i]*x[j];      
   }         
   k=lenx+leny-1;        
   for(i=0;i<k;i++)         
   if(p1[i]>=10)         
   {           
      p1[i+1]+=p1[i]/10;          
      p1[i]%=10;         
   }       
   if(p1[k]!=0)             
      for(i=k;i>=0;i--)      
         printf("%d",p1[i]);      
   else        
      for(i=k-1;i>=0;i--)          
         printf("%d",p1[i]);      
   printf("\n");      
   return 0;  
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值