【文字列処理メニュー】> 巨大な数の足し算 (paizaランク C 相当) [難易度: 1384 ±16]
※リンク先へ移動するためには[paiza]へのログインが必要です。
数値を表す文字列 S , T が与えられるので、S + T の結果を表す文字列を出力してください。繰り上がりが発生する可能性があるので注意してください。
入力値(例)
1029384756
1029384756
出力値(例)
2058769512
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php $s = trim(fgets(STDIN)); $t = trim(fgets(STDIN)); $len = mb_strlen($s); $x = 0; for($i = 0; $i < $len; $i++) { $c = $s[$len - 1 - $i] + $t[$len - 1 - $i] + $x; if(mb_strlen($c) == 2) { $x = substr($c, 0, 1); $ans[] = substr($c, 1, 1); } else { $ans[] = $c; $x = 0; } } if($x == 1){ $ans[] = $x; } $rev_ans = array_reverse($ans); foreach($rev_ans as $value) { echo $value; } ?> |