• 编程实现任意长度整数的加法(整数可以长度超出C++中int范围)


    #include <iostream>
    #include<string>
    using namespace std;
    string add(string s1,string s2)
    {
        string s0;
        int c=0;
    	if(s1.size()<s2.size())
    	{
    		string ss;
    		ss=s1;
    		s1=s2;
    		s2=ss;
    	}
    	int len1=s1.size()-1,len2=s2.size()-1;
    	while(len1>=0)
    	{
    		char m;
    		if(len2>=0)
    		{
    			int a=(s1[len1]-48)+(s2[len2]-48)+c;
    			c=a/10;
    			a=a%10;
    			m=a+48;
    			s0.insert(0,m);
    			len1--;
    			len2--;
    		}
    		else
    		{
    			int b=s1[len1]-48+c;
    			c=b/10;
    			b=b%10;
    			m=b+48;
    			s0.insert(0,m);
    			len1--;
    		}
    	}
    
    	if(c!=0)
    	{
    		s0.insert(0,c+48);
    	}
    
    	return s0;
    }
    
    
    int main()
    {
        string s1,s2;   
        cin>>s1>>s2;
        string s0=add(s1,s2);
    	cout<<s0<<endl;
        return 0;
    }
    

      效率可能不是很高

  • 相关阅读:
    CFgym102394I
    Infinite Fraction Path (后缀数组)
    2016ACM/ICPC亚洲区沈阳站-重现赛
    2sat学习笔记
    bzoj4176
    bzoj3309
    6C
    3U
    3T
    3R
  • 原文地址:https://www.cnblogs.com/xiaovlxx/p/4524394.html
Copyright © 2020-2023  润新知