How to add a decimal integer within 100 digits to a function. The input parameter is a string of two integers, and the return value is the sum of their additions - PHP Chinese Questions and Answers - How to add a decimal integer within 100 digits Addition function, the input parameter is a string of two integers, and the return value is the sum of their addition - PHP Chinese website Q&A
How to add a decimal integer within 100 digits to a function. The input parameter is a string of two integers, and the return value is the sum of their additions - PHP Chinese Questions and Answers - How to add a decimal integer within 100 digits Addition function, the input parameter is a string of two integers, and the return value is the sum of their addition - PHP Chinese website Q&A
Take a look around and learn.
//生成两个大数
$n1='';$n2='';
$n1_length=mt_rand(1,15); //这里是位数限制,想验算就限制在10到15位然后拿计算器敲下看吧,要写成100毫无问题只是不方便验算
$n2_length=mt_rand(1,15);
for($i=0;$i<$n1_length;$i++){
$n1=$n1.mt_rand(1,9);
}
for($i=0;$i<$n2_length;$i++){
$n2=$n2.mt_rand(1,9);
}
//求出字符串长度先
$l1=strlen($n1);
$l2=strlen($n2);
$l=max($l1,$l2);
//翻转两个数
$n1_rev=strrev($n1);
$n2_rev=strrev($n2);
//短的填充0
$n1_rev=$l1>$l2?$n1_rev:str_pad($n1_rev,$l,'0');
$n2_rev=$l2>$l1?$n2_rev:str_pad($n2_rev,$l,'0');
//相同位相加的进位
$other=0;
//两数之和
$n3='';
//从个位向上依次相加
for($j=0;$j<$l;$j++){
//相同位相加加进位的和
$sum=intval( $n1_rev{$j}+$n2_rev{$j}+$other);
$other=intval($sum/10);
$n3=$n3.($sum%10);
}
echo $n1.'
';
echo '+'.'
';
echo $n2.'
';
echo '='.'
';
echo strrev($n3);
?>