加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数的加减乘除(转赵老四)

发布时间:2020-12-14 02:57:42 所属栏目:大数据 来源:网络整理
导读:#include?iostream #include?string #include?algorithm using ? namespace ? std; int ? COMPARE(string?number1,?string?number2)?{ ???? i,j; ? length1?=?number1.size(); length2?=?number2.size(); ? ???? if (number1.size()?==?0)?number1?=? "0" ;
#include?<iostream>
#include?<string>
#include?<algorithm>
using? namespace? std;
int? COMPARE(string?number1,?string?number2)?{
???? i,j;
?
length1?=?number1.size();
length2?=?number2.size();
?
???? if (number1.size()?==?0)?number1?=? "0" ;
(number2.size()?==?0)?number2?=? ;
?
???? j?=?0;
for (i?=?0;?i?<?length1;?++i)?{
???????? (number1[i]?==? '0' )?++j;
else? break ;
}
number1?=?number1.substr(j);
?
j?=?0;
(i?=?0;?i?<?length2;?++i)?{
(number2[i]?==? )?++j;
;
}
number2?=?number2.substr(j);
?
length1?=?number1.size();
length2?=?number2.size();
?
(length1?>?length2)?{
return? 1;
}? (length1?==?length2)?{
(number1.compare(number2)?>?0)?{
???????????? 1;
???????? (number1.compare(number2)?==?0)?{
0;
else? {
-1;
}
{
-1;
}
?
0;
}
string?PLUS(string?number1,string?number2)?{
i;
length1?=?number1.size();
length2?=?number2.size();
?
string?result= "" ;
?
reverse(number1.begin(),?number1.end());
reverse(number2.begin(),?number2.end());
?
(i?=?0;?i?<?length1?&&?i?<?length2;?i++)?{
???????? char? c?=?( char )(number1[i]?+?number2[i]?-?48);
result?=?result?+?c;
}
?
while (i?<?length1)?{
result?=?result?+?number1[i];
++i;
}
?
(i?<?length2)?{
result?=?result?+?number2[i];
++i;
}
?
carry?=?0;
(i?=?0;?i?<?( int )result.size();?++i)?{
value?=?result[i]?-?48?+?carry;
result[i]?=?( )(value?%?10?+?48);
carry?=?value?/?10;
}
?
(carry?!=0?)?{
result?=?result?+?( )(carry?+?48);
}
?
(i?=?result.size()?-?1;?i?>=?0;?i--)?{
(result[i]?!=? )? ;
}
?
result?=?result.substr(0,?i?+?1);
?
reverse(result.begin(),?result.end());
(result.length()?==?0)?result?=? ;
result;
}
string?MINUS(string?number1,string?number2)?{
i;
string?result?=? ;
?
length1?=?number1.size();
length2?=?number2.size();
?
(COMPARE(number2,number1)?>?0)?{
return? "-"? +?MINUS(number2,?number1);
}
?
?
(i?=?0;?i?<?length1?&&?i?<?length2;?i++)?{
c?=?number1[i]?-?number2[i]?+?48;
result?=?result?+?c;
}
?
(i?<?length1)?{
(;?i?<?length1;?i++)?{
???????????? result?=?result?+?number1[i];
}
}
?
carry?=?0;
)result.length();?i++)?{
value?=?result[i]?-?48?+?carry;
(value?<?0)?{
value?=?value?+?10;
carry?=?-1;
carry?=?0;
result[i]=( )(value?+?48);
}
?
(i?=?result.size()?-?1;?i?>=?0;?i--)?{
) ;
}
?
?
(result.length()==0)?result?=? ;
result;
}
string?MULTIPLY(string?number1,?string?number2)?{
*iresult;
length1?=?number1.size();
length2?=?number2.size();
;
?
?
iresult?=?( *) malloc ( sizeof ( )?*?(length1?+?length2?+?1));
???? memset (iresult,?0,? )?*?(length1?+?length2?+?1));
?
(i?=?0;?i?<?length1;?i++)?{
(j?=?0;?j?<?length2;?j++)?{
iresult[i+j]?+=?((number1[i]?-?48)?*?(number2[j]?-?48));
}
}
?
carry?=?0;
(i?=?0;?i?<?length1?+?length2;?i++)?{
value?=?iresult[i]?+?carry;
iresult[i]?=?value?%?10;
carry?=?value?/?10;
}
?
(i?=?length1?+?length2?-?1;?i?>=?0;?i--)?{
(iresult[i]?!=?0) ;
}
?
(;?i?>=?0;?i--)?{
)(iresult[i]+48);
}
?
free (iresult);
?
(result?==? )?result?=? ;
result;
}
string?factorial(string?n)?{
string?temp?=? "1" ;
string?i;
(i?=? ;?COMPARE(i,?n)?<=?0;?i?=?PLUS(i,? ))?{
temp?=?MULTIPLY(temp,?i);
}
temp;
}
main( void )?{
cout?<<?factorial( "100" )?<<?endl;
0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读