Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- length () {
- length=0
- while [[ "${Num1:$length:1}" != "" ]]; do
- let "length=$length+1"; 2>nul
- done;
- echo $length
- }
- sum () {
- Num1=$1
- Num2=$2
- len1=$(length $Num1)
- len2=$(length $Num2)
- if [[ $len1 == $len2 ]]
- then
- len=$len1
- else
- if [[ $len1 > $len2 ]]
- then
- len=$len1
- while [[ $len2 != $len ]]; do
- Num2=0$Num2
- let "len2=$len2+1"
- done
- else
- len=$len2
- while [[ $len1 != $len ]]; do
- Num1=0$Num1
- let "len1=$len1+1"
- done
- fi
- fi
- rem=0
- let "len=$len-1"
- let "curn=${Num1:$len:1}+${Num2:$len:1}"
- if [[ ${curn:1:1} == "" ]]
- then
- ans=$curn
- rem=0
- else
- ans=${curn:1:1}
- rem=1
- fi
- while [[ $len > 0 ]]; do
- let "len=$len-1"
- let "curn=${Num1:$len:1}+${Num2:$len:1}+$rem"
- if [[ ${curn:1:1} == "" ]]
- then
- ans=$curn$ans
- rem=0
- else
- ans=${curn:1:1}$ans
- rem=1
- fi
- done
- echo $ans
- }
- n1=$1
- n2=$2
- l1=$(length $n1)
- l2=$(length $n2)
- cn2=0
- ans=0
- r=0
- cz=0
- let "l2=$l2-1"
- cn2=${n2:l2:1}
- let "cl1=$l1-1"
- let "cm=${n1:$cl1:1}*$cn2"
- let "cm=$cm+$r"
- if [[ ${cm:1:1} == "" ]]
- then
- ca=$cm
- r=0
- else
- ca=${cm:1:1}
- r=${cm:0:1}
- fi
- let "cl1=$cl1=1"
- while [[ $cl1 > 0 ]]; do
- let "cm=${n1:cl1:1}*$cn2"
- let "cm=$cm+$r"
- if [[ ${cm:1:1} == "" ]]
- then
- ca=$cm$ca
- r=0
- else
- ca=${cm:1:1}$ca
- r=${cm:0:1}
- fi
- let "cl1=$cl1-1"
- done
- if %remainder% GTR 0 (
- set curans=%remainder%%curans%
- set /A remainder=0
- )
- set ans=%curans%
- set /A length2=%length2%-1
- if %length2% LSS 0 goto :qw
- :start
- set curn2=!Number2:~%length2%,1!
- set /A curlength1=!length1!-1
- set /A curm=!Number1:~%curlength1%,1!*!curn2!
- set /A curm=!curm!+%remainder%
- if %curm% LSS 10 (
- set curans=%curm%
- set /A remainder=0
- ) else (
- set curans=%curm:~1,1%
- set /A remainder=%curm:~0,1%
- )
- set /A curlength1=!curlength1!-1
- if %curlength1% LSS 0 goto :q1
- :m1
- set /A curm=!Number1:~%curlength1%,1!*!curn2!
- set /A curm=!curm!+%remainder%
- if %curm% LSS 10 (
- set curans=%curm%%curans%
- set /A remainder=0
- ) else (
- set curans=%curm:~1,1%%curans%
- set /A remainder=%curm:~0,1%
- )
- set /A curlength1=!curlength1!-1
- if not %curlength1% LSS 0 goto :m1
- :q1
- set curans=%curans%%curzerro%
- if %remainder% GTR 0 (
- set curans=%remainder%%curans%
- set /A remainder=0
- )
- set curzerro=%curzerro%0
- set /A ans=%curans%+%ans%
- set /A length2=%length2%-1
- if not %length2% LSS 0 goto :start
- :qw
- echo %ans%
- endlocal
Advertisement
Add Comment
Please, Sign In to add comment