zoukankan      html  css  js  c++  java
  • 高精度乘法

    #include<stdio.h>
    #include<string.h>
    #define N 10000
    int main()
    {
    	char shu[N],shu1[N];
    	int a,b,c,q=0,p=0,m[N],n[N],sum[100000],i,j,h,l;
    	scanf("%s %s",&shu,&shu1);
    	a=strlen(shu);
    	b=strlen(shu1);
    	for(q=1,c=a-1;q<=a;q++,c--)
    	{
    		m[q]=shu[c]-'0';    //转换数组中的数个位从1开始 
    	}
    	for(p=1,c=b-1;p<=b;p++,c--)
    	{
    		n[p]=shu1[c]-'0';
    	}
    	for(i=1;i<=a;i++)
    	for(j=1,l=i-1;j<=b;j++)
    	{
    		sum[++l]+=m[i]*n[j];       //这里是推倒出来的规律,记住呗 
    	 }
    	 for(c=1;c<=l;c++)
    	 {
    	 	if(sum[c]>=10)
    	 	{
    	 		if(sum[l]>=10)
    	 		{
    	 			h=sum[c]/10;
    	 		    sum[c+1]+=h;
    	 		   sum[c]=sum[c]%10;
    	 		   l++;
    			 }
    			 else
    			 {
    			 	 h=sum[c]/10;
    	 		    sum[c+1]+=h;
    	 		   sum[c]=sum[c]%10;
    			  } 
    		 }
    	  }
    	  for(c=l;c>=1;c--)
    	  {
    	  	printf("%d",sum[c]);
    	   } 
    	return 0;
    }
    

      注释:高精度的大体框架,方法可以应用到题里面。

  • 相关阅读:
    最后一次作业-- 总结报告
    第14.15周作业
    第七周作业
    第六周作业
    第四周作业
    第三周作业。
    第四次作业
    第三次作业
    第二次作业
    第一次作业
  • 原文地址:https://www.cnblogs.com/saber114567/p/8390970.html
Copyright © 2011-2022 走看看