PHP Program to Big Integer Subtraction with Explanation
PHP
Hard
PHP Data Types
26 views
1 min read
84 words
This problem helps you practice core PHP fundamentals in a practical way. It builds intuition around big, one, subtraction. Let’s break it down step by step so you can implement it confidently.
Problem Statement
Given a and b as big integers (a >= b), print a-b.
Input Format
One line: a b (a>=b).
Output Format
One integer string.
Constraints
1
Code Solution
This explanation is written for learning purposes and to help beginners understand the concept clearly.
<?php
$inputText=trim(stream_get_contents(STDIN));
if($inputText==='') exit;
[$a,$b]=preg_split('/\\s+/', $inputText, 2);
$a=ltrim($a,'0'); if($a==='') $a='0';
$b=ltrim($b,'0'); if($b==='') $b='0';
$i=strlen($a)-1; $j=strlen($b)-1; $borrow=0; $out='';
while($i>=0){
$da=ord($a[$i])-48-$borrow;
$db=($j>=0)?(ord($b[$j])-48):0;
if($da<$db){ $da+=10; $borrow=1; } else $borrow=0;
$out=chr(($da-$db)+48).$out;
$i--; $j--;
}
$out=ltrim($out,'0');
echo ($out===''?'0':$out);
?>
Common Mistakes
- Misreading input/output format.
- Not handling constraints and edge cases.
- Off-by-one errors in loops.
- Forgetting to reset variables between test cases (if any).
Solution Guide
Problem
Given a and b as big integers (a >= b), print a-b.
Input / Output
Input
One line: a b (a>=b).
Output
One integer string.
Details
Common Mistakes
- Misreading input/output format.
- Not handling constraints and edge cases.
- Off-by-one errors in loops.
- Forgetting to reset variables between test cases (if any).
Official Solution
<?php
$inputText=trim(stream_get_contents(STDIN));
if($inputText==='') exit;
[$a,$b]=preg_split('/\\s+/', $inputText, 2);
$a=ltrim($a,'0'); if($a==='') $a='0';
$b=ltrim($b,'0'); if($b==='') $b='0';
$i=strlen($a)-1; $j=strlen($b)-1; $borrow=0; $out='';
while($i>=0){
$da=ord($a[$i])-48-$borrow;
$db=($j>=0)?(ord($b[$j])-48):0;
if($da<$db){ $da+=10; $borrow=1; } else $borrow=0;
$out=chr(($da-$db)+48).$out;
$i--; $j--;
}
$out=ltrim($out,'0');
echo ($out===''?'0':$out);
?>
Solutions (0)
No solutions submitted yet. Be the first!