字符串大数相加,转换,去除前导0,字符串数值比较函数模板

Posted qieqiemin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串大数相加,转换,去除前导0,字符串数值比较函数模板相关的知识,希望对你有一定的参考价值。

string S(ll n)stringstream ss;string s;ss<<n;ss>>s;return s;
ll N(string s)stringstream ss;ll n;ss<<s;ss>>n;return n;
string rm0(string s)//  去除前导0函数
    int i;
    for(i=0;i<s.size()-1;i++)
        if(s[i]!='0')
            break;
    return s.substr(i);

string ADD(string s,string t) // 字符串整数相加,返回一个字符串
  if(s.size()<t.size())swap(s,t);s='0'+s;
  reverse(t.begin(), t.end());while(s.size()>t.size())t+='0';reverse(t.begin(), t.end());int c=0;
  for(int i=s.size();i>=0;i--)
  
    if(c)
        if(s[i]=='9')
            s[i]='0';c=1;
        else
            s[i]=(char)(s[i]+1);c=0;
        
    
    int sum=(int)s[i]+(int)t[i]-'0'*2;
    if(sum>=10)
        s[i]=(char)(sum-10+'0');c=1;
    
    else
        s[i]=(char)(sum+'0');
  
  return rm0(s);

bool cmp(string s,string t) 
    // s>=t 返回1
    // s<t 返回0
    if(s.size()!=t.size())
          return s.size()>t.size();
    for(int i=0;i<s.size();i++)
        if(s[i]!=t[i])
            return s[i]>t[i];
  return 1;

以上是关于字符串大数相加,转换,去除前导0,字符串数值比较函数模板的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中大数相加的解法

js大数相加和大数相乘

js大数相加和大数相乘

leetcode 43 大数相乘

java 很长的大数 如何用String 相加,相乘?

js 数字 与 字符串之间的操作