• 大整数相乘


    #include <iostream>
    #include <string>
    using namespace std;
    
    const int N=1000;
    int i,j;
    
    void reverseIt(string& str)
    {
    int m=str.length();
    for(i=0,j=m-1;i<=j;i++,j--)
    {
    char temp;
    temp=str[i];
    str[i]=str[j];
    str[j]=temp;
    }
    }
    
    void StrToInt(string str1,int (&a)[N])
    {
    for(i=0;i<str1.size();i++)
    a[i]=str1[i]-'0';
    }
    
    void Calcuate(string str1,string str2)
    {
    int m=0,n=0,count=0;
    int a[N]={0},b[N]={0},Result[2*N]={0};
    m=str1.length();//str1*str2,a*b
    n=str2.length();
    reverseIt(str1);
    reverseIt(str2);
    StrToInt(str1,a);
    StrToInt(str2,b);
    for(i=0;i<n;i++)//乘数
    for(j=0;j<m;j++)//被乘数的位置
       {
       Result[i+j]+=b[i]*a[j];
       if(Result[i+j]>10){
       Result[i+j+1]+=Result[i+j]/10;
       Result[i+j]=Result[i+j]%10;
        }//if
       }//for
    if(Result[m+n-1]!=0) count=m+n-1;
    else count=m+n-2;
    for(int i=count;i>=0;i--)
      {
      cout<<Result[i];
      }//for
    cout<<endl;
    }
    
    int main()
    {
    string str1,str2;
    while(1)
    {
    cout<<"Please input two integer:"<<endl;
    cin>>str1>>str2;
    Calcuate(str1,str2);
    }//while
    return 0;
    }

    大整数相乘


    每天早上叫醒你的不是闹钟,而是心中的梦~
  • 相关阅读:
    《学习之道》第十章方法空间能力是可以后天形成的
    《学习之道》第十章总结
    《学习之道》第十章视觉和空间记忆的原因
    数据结构之链表:双指针问题
    单例模式
    Java的锁
    Python锁
    排序算法小结
    命中索引
    反射
  • 原文地址:https://www.cnblogs.com/vintion/p/4117062.html
Copyright © 2020-2023  润新知