Wacky_rubia

longmul

Jan 16th, 2014
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 2.13 KB | None | 0 0
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. set Number1=%1
  4. set Number2=%2
  5. set /A length1=0
  6. set /A length2=0
  7. :l1
  8.     set /A length1=%length1%+1
  9.     if NOT "!Number1:~%length1%,1!" == "" goto :l1
  10. :l2
  11.     set /A length2=%length2%+1
  12.     if NOT "!Number2:~%length2%,1!" == "" goto :l2
  13. set curn2=0 rem текущая цифра из 2 числа
  14. set ans=0
  15. set remainder=0
  16. set curzerro=0
  17. set /A length2=%length2%-1
  18.  
  19. set curn2=!Number2:~%length2%,1!
  20. set /A curlength1=!length1!-1
  21. set /A curm=!Number1:~%curlength1%,1!*!curn2!
  22. set /A curm=!curm!+%remainder%
  23. if %curm% LSS 10 (
  24.     set curans=%curm%
  25.     set /A remainder=0
  26. ) else (
  27.     set curans=%curm:~1,1%
  28.     set /A remainder=%curm:~0,1%
  29. )
  30. set /A curlength1=!curlength1!-1
  31. if %curlength1% LSS 0 goto :q
  32.  
  33. :m
  34.     set /A curm=!Number1:~%curlength1%,1!*!curn2!
  35.     set /A curm=!curm!+%remainder%
  36.     if %curm% LSS 10 (
  37.         set curans=%curm%%curans%
  38.         set /A remainder=0
  39.     ) else (
  40.         set curans=%curm:~1,1%%curans%
  41.         set /A remainder=%curm:~0,1%
  42.     )
  43.     set /A curlength1=!curlength1!-1
  44.     if not %curlength1% LSS 0 goto :m
  45. :q
  46. if %remainder% GTR 0 (
  47.     set curans=%remainder%%curans%
  48.     set /A remainder=0
  49. )
  50. set ans=%curans%
  51. set /A length2=%length2%-1
  52. if %length2% LSS 0 goto :qw
  53.  
  54.  
  55. :start
  56.     set curn2=!Number2:~%length2%,1!
  57.     set /A curlength1=!length1!-1
  58.     set /A curm=!Number1:~%curlength1%,1!*!curn2!
  59.     set /A curm=!curm!+%remainder%
  60.     if %curm% LSS 10 (
  61.         set curans=%curm%
  62.         set /A remainder=0
  63.     ) else (
  64.         set curans=%curm:~1,1%
  65.         set /A remainder=%curm:~0,1%
  66.     )
  67.     set /A curlength1=!curlength1!-1
  68.     if %curlength1% LSS 0 goto :q1
  69.     :m1
  70.         set /A curm=!Number1:~%curlength1%,1!*!curn2!
  71.         set /A curm=!curm!+%remainder%
  72.         if %curm% LSS 10 (
  73.             set curans=%curm%%curans%
  74.             set /A remainder=0
  75.         ) else (
  76.             set curans=%curm:~1,1%%curans%
  77.             set /A remainder=%curm:~0,1%
  78.         )
  79.         set /A curlength1=!curlength1!-1
  80.         if not %curlength1% LSS 0 goto :m1
  81.     :q1
  82.     set curans=%curans%%curzerro%
  83.     if %remainder% GTR 0 (
  84.         set curans=%remainder%%curans%
  85.         set /A remainder=0
  86.     )
  87.     set curzerro=%curzerro%0
  88.     call sum.cmd %curans% %ans%
  89.     set /A length2=%length2%-1
  90.     if not %length2% LSS 0 goto :start
  91. :qw
  92. echo %ans%
  93. endlocal
Advertisement
Add Comment
Please, Sign In to add comment