怎么将100位以内的10进制整数加法函数,输入参数为两个整数的字符串,返回值是他们相加的和
静待花开
静待花开 2017-01-12 10:57:06
0
2
1251
静待花开
静待花开

全部回覆(2)
数据分析师

怎麼將100位元以內的10進制整數加法函數,輸入參數為兩個整數的字串,返回值是他​​們相加的和-PHP中文網問答-怎麼將100位以內的10進制整數加法函數,輸入參數為兩個整數的字串,返回值是他​​們相加的和-PHP中文網問答

圍觀一下哦,學習一下。

刘奇

<?php
//生成两个大数
$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.'<br/>';
echo '+'.'<br/>';
echo $n2.'<br/>';
echo '='.'<br/>';
echo strrev($n3);
?>

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板