⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1001.c

📁 北大在线做题系统 1001题 高精度乘法
💻 C
字号:
#include <stdio.h>

int c[200];

int main()
{
  char a[6];
  int b[6],i,j,k,n;
  int temp[200];
  while(scanf("%s%d",&a,&n)!=EOF)
  {
       j=1;
       for(i=0;i<6;i++)
       {
            if(a[i]>='0'&&a[i]<='9')
            {
                b[j]=a[i]-'0';
                c[j]=b[j];
                j++;
            }
           else
           b[0]=j-1;
       }
       c[0]=b[0];
       
       for(k=0;k<n-1;k++)
       {
            for(i=0;i<126;i++) temp[i]=0;

            for(i=1;i<(5*(k+1)+1);i++)
             for(j=1;j<6;j++)
             temp[i+j]=temp[i+j]+c[i]*b[j];
             
             for(i=5*(k+2);i>1;i--)
             {
                temp[i-1]=temp[i-1]+temp[i]/10;
                temp[i]=temp[i]%10;
             }
             for(i=1;i<=5*(k+2);i++)
             c[i]=temp[i];
             c[0]=c[0]+b[0]; 
        }
       for(i=5*n;i>c[0];i--)
            if(c[i]>0)break;
        j=i;
        for(i=1;i<=c[0];i++)
            if(c[i]>0)break;
        k=i;
        for(i=k;i<=j;i++)
        {
            if(c[0]<k&&i==k) printf(".")
            printf("%d",c[i]);
            if(c[0]==i&&c[0]!=j)printf(".");
        }
   printf("\n");
   } 	
  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -