现在的位置: 首页 > 综合 > 正文

大数

2013年11月09日 ⁄ 综合 ⁄ 共 1048字 ⁄ 字号 评论关闭

 大数里面输入用字符串输入...输入以后对每一个字符进行a[i]=a[i]-'0'处理使之变成int型就可以进行乘法运算

在乘方里面..可以每×一次就进位一次.结果任然是对的.

同时还要主要输出.如要求0.01写为.01 1.00写为1而不是1.

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>

int main()
{
    int m,h[200],g[40][40];
   char k[40],s[40];
   while(scanf("%s",k)!=EOF)
   {scanf("%s",s);
   for(int i=0;i<strlen(k);i++)
     k[i]=k[i]-'0';
   for(int i=strlen(s)-1;i>=0;i--)
     s[i]=s[i]-'0';
   for(int i=strlen(k)-1;i>=0;i--)
   {
      for(int j=strlen(s);j>=0;j--)
       g[i][j]=k[i]*s[j];
    }
   for(int q=0;q<strlen(k)+strlen(s)-1;q++)
    {
        h[q]=0;
          printf("%d",h[q]);
      for(int i=0;i<strlen(k);i++)
        {
          for(int j=0;j<strlen(s);j++)
            {
              if(q==i+j)
               h[q]=h[q]+g[i][j];
              
            }
        }
        printf("%d",h[q]);
    }
    for(int i=strlen(k)+strlen(s)-2;i>0;i--)
     {
        if(h[i]>=10)
        {
            m=h[i]/10;
            h[i]=h[i]%10;
            h[i-1]=h[i-1]+m;
        }
    }

  for(int i=0;i<strlen(k)+strlen(s)-1;i++)
     printf("%d",h[i]);
     printf("\n");
   
 

}
  
    system("pause");
    return 0;
}

抱歉!评论已关闭.