Advertisement
Zung_the_great

[pascal] multiplication:(Nhân số cực lớn trong pascal)

Feb 13th, 2015
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. program this_is_so_hard;
  2. uses crt;
  3. type
  4. int = integer;
  5. var
  6. l : string;
  7. a,b,c : string;
  8.  
  9. function add(a,b:string):string;
  10. var d,i,j,k:int;
  11. code:int;
  12. i1,i2,kt:int;
  13. s,o :string;
  14. c,tg :string;
  15. begin
  16. if length(b)>length(a) then
  17. begin
  18. c:=a;
  19. a:=b;
  20. b:=c;
  21. end;
  22.  
  23. for i:=1 to length(a)-length(b) do
  24. b:='0'+b;
  25. c:='';
  26. d:=length(a);
  27. j:=length(a);
  28. k:=length(a); kt:=0;
  29. repeat
  30. val(a[j],i1,code);
  31. val(b[k],i2,code);
  32. {write('i1: ',i1,' i2: ',i2,' ');}
  33. i:=i1+i2+kt; {witeln(i);}
  34. if i>=10 then begin
  35. i:=i mod 10;
  36. kt:=1;
  37. str(i,s);
  38. insert(s,c,length(c)+1);
  39. end
  40. else
  41. begin
  42. kt:=0;
  43. str(i,s);
  44. insert(s,c,length(c)+1);
  45. end;
  46.  
  47. d:=d-1;
  48. j:=j-1;
  49. k:=k-1;
  50. until d=0;
  51. if kt=1 then insert('1',c,length(c)+1);
  52. o:='';
  53. for i:=length(c) downto 1 do o:=o+c[i];
  54. add:=o;
  55. end;
  56.  
  57. procedure multification;
  58. var i,j,t1,t2,s,nho:int;
  59. m,n,is:string;
  60. code,d:int;
  61.  
  62. begin
  63. m:='';
  64. nho:=0;
  65. val(b[length(b)],t1,code);
  66. for j:=length(a) downto 1 do
  67. begin
  68. val(a[j],t2,code);
  69. s:=t1*t2+nho;
  70. if s>=10 then begin nho:= s div 10; s:=s mod 10; end
  71. else nho:=0;
  72. str(s,is);
  73. insert(is,m,0);
  74. end;
  75. if nho >0 then
  76. begin
  77. str(nho,is);
  78. insert(is,m,0);
  79. end;
  80. d:=0;
  81. nho:=0;
  82. for i:=length(b)-1 downto 1 do
  83. begin
  84. n:='';
  85. val(b[i],t1,code);
  86. for j:=length(a) downto 1 do
  87. begin
  88. val(a[j],t2,code);
  89. s:=t1*t2+nho;
  90. if s>=10 then begin
  91. nho:= s div 10;
  92. s:=s mod 10;
  93. end
  94. else nho:=0;
  95. str(s,is);
  96. insert(is,n,0);
  97. end;
  98. if nho >0 then
  99. begin
  100. str(nho,is);
  101. insert(is,n,0);
  102. end;
  103. d:=d+1;
  104. for j:=1 to d do n:=n+'0';
  105. for j:=1 to length(n)-length(m) do m:='0'+m;
  106. write(m); break;
  107. m:=add(m,n);
  108. end;
  109. {write(m); }
  110. end;
  111.  
  112. begin
  113. clrscr;
  114. write('nhap so a: '); readln(a);
  115. write('nhap so b: '); readln(b);
  116. if length(b)>length(a) then
  117. begin
  118. c:=a;
  119. a:=b;
  120. b:=c;
  121. end;
  122. multification;
  123. readln;
  124. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement