zoukankan      html  css  js  c++  java
  • 大整数相加

    具体情形还应略作修改

    #include <iostream.h>
    #include <string>
    using namespace std;
    char a[1000];
    void add(string str1, string str2, char* a)   //str1+str2=a;皆字符串 
    {
    if(str1.length()<str2.length())
    	str1.swap(str2);   //保证str1>=str2 
    int len = str1.length();
    str2.insert(0,str1.length()-str2.length(),'0'); //两者等长,便于操作,于计算无义 
    int i;
    int carry = 0;
    //两者相加,长度或len或len+1,故先取len 
    for(i=0;i<len;i++)
    {
    	a[len-1-i] = (str1[len-1-i]+str2[len-1-i]-2*'0'+ carry)%10 + '0';
    	carry = (str1[len-i-1]+str2[len-1-i]-2*'0'+ carry)/10;
    }		
    if(carry!=0)//有进位则必是1,打印之 
    cout<<'1';
    cout<<a<<endl;
    }
    int main()
    {
    	string str1,str2;
    	str1.clear();
    	str2.clear();
    
    	cin>>str1>>str2;
    	
       // cout<<str1<<endl<<str2<<endl;
        add(str1,str2,a);
        //cout<<str3<<endl;
    	return 0;
    }
    


    每天早上叫醒你的不是闹钟,而是心中的梦~
  • 相关阅读:
    c++中sort()及qsort()的用法总结
    POJ的层次感分类
    DFS练习-HDU1010
    Dijkstra&&Floyd
    DFS练习一---HDU 1342
    快速幂取模算法
    树的实现
    C++的队列和pair
    BFS练习-POJ.2386
    Codeforces 1139E(二分图最大匹配)
  • 原文地址:https://www.cnblogs.com/vintion/p/4117061.html
Copyright © 2011-2022 走看看