Wacky_rubia

mulU

Jan 18th, 2014
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.46 KB | None | 0 0
  1. #!/bin/bash
  2. length () {
  3.     length=0
  4.     while [[ "${Num1:$length:1}" != "" ]]; do
  5.         let "length=$length+1"; 2>nul
  6.     done;
  7.     echo $length
  8. }
  9. sum () {
  10.     Num1=$1
  11.     Num2=$2
  12.     len1=$(length $Num1)
  13.     len2=$(length $Num2)
  14.     if [[ $len1 == $len2 ]]
  15.     then
  16.         len=$len1
  17.     else
  18.         if [[ $len1 > $len2 ]]
  19.         then
  20.        
  21.             len=$len1
  22.             while [[ $len2 != $len ]]; do
  23.                 Num2=0$Num2
  24.                 let "len2=$len2+1"
  25.             done
  26.         else
  27.             len=$len2
  28.             while [[ $len1 != $len ]]; do
  29.                 Num1=0$Num1
  30.                 let "len1=$len1+1"
  31.             done
  32.         fi
  33.     fi
  34.     rem=0
  35.     let "len=$len-1"
  36.     let "curn=${Num1:$len:1}+${Num2:$len:1}"
  37.     if [[ ${curn:1:1} == "" ]]
  38.     then
  39.         ans=$curn
  40.         rem=0
  41.     else
  42.         ans=${curn:1:1}
  43.         rem=1
  44.     fi
  45.     while [[ $len > 0 ]]; do
  46.         let "len=$len-1"
  47.         let "curn=${Num1:$len:1}+${Num2:$len:1}+$rem"
  48.         if [[ ${curn:1:1} == "" ]]
  49.         then
  50.             ans=$curn$ans
  51.             rem=0
  52.         else
  53.             ans=${curn:1:1}$ans
  54.             rem=1
  55.         fi
  56.     done
  57.     echo $ans
  58. }
  59. n1=$1
  60. n2=$2
  61. l1=$(length $n1)
  62. l2=$(length $n2)
  63. cn2=0
  64. ans=0
  65. r=0
  66. cz=0
  67. let "l2=$l2-1"
  68. cn2=${n2:l2:1}
  69. let "cl1=$l1-1"
  70. let "cm=${n1:$cl1:1}*$cn2"
  71. let "cm=$cm+$r"
  72. if [[ ${cm:1:1} == "" ]]
  73. then
  74.     ca=$cm
  75.     r=0
  76. else
  77.     ca=${cm:1:1}
  78.     r=${cm:0:1}
  79. fi
  80. let "cl1=$cl1=1"
  81. while [[ $cl1 > 0 ]]; do
  82.     let "cm=${n1:cl1:1}*$cn2"
  83.     let "cm=$cm+$r"
  84.     if [[ ${cm:1:1} == "" ]]
  85.     then
  86.         ca=$cm$ca
  87.         r=0
  88.     else
  89.         ca=${cm:1:1}$ca
  90.         r=${cm:0:1}
  91.     fi
  92.     let "cl1=$cl1-1"
  93. done
  94.  
  95.  
  96. if %remainder% GTR 0 (
  97.     set curans=%remainder%%curans%
  98.     set /A remainder=0
  99. )
  100. set ans=%curans%
  101. set /A length2=%length2%-1
  102. if %length2% LSS 0 goto :qw
  103.  
  104.  
  105. :start
  106.     set curn2=!Number2:~%length2%,1!
  107.     set /A curlength1=!length1!-1
  108.     set /A curm=!Number1:~%curlength1%,1!*!curn2!
  109.     set /A curm=!curm!+%remainder%
  110.     if %curm% LSS 10 (
  111.         set curans=%curm%
  112.         set /A remainder=0
  113.     ) else (
  114.         set curans=%curm:~1,1%
  115.         set /A remainder=%curm:~0,1%
  116.     )
  117.     set /A curlength1=!curlength1!-1
  118.     if %curlength1% LSS 0 goto :q1
  119.     :m1
  120.         set /A curm=!Number1:~%curlength1%,1!*!curn2!
  121.         set /A curm=!curm!+%remainder%
  122.         if %curm% LSS 10 (
  123.             set curans=%curm%%curans%
  124.             set /A remainder=0
  125.         ) else (
  126.             set curans=%curm:~1,1%%curans%
  127.             set /A remainder=%curm:~0,1%
  128.         )
  129.         set /A curlength1=!curlength1!-1
  130.         if not %curlength1% LSS 0 goto :m1
  131.     :q1
  132.     set curans=%curans%%curzerro%
  133.     if %remainder% GTR 0 (
  134.         set curans=%remainder%%curans%
  135.         set /A remainder=0
  136.     )
  137.     set curzerro=%curzerro%0
  138.     set /A ans=%curans%+%ans%
  139.     set /A length2=%length2%-1
  140.     if not %length2% LSS 0 goto :start
  141. :qw
  142. echo %ans%
  143.    
  144. endlocal
Advertisement
Add Comment
Please, Sign In to add comment