Guest User

Untitled

a guest
Jan 4th, 2018
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. program AA;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils;
  7.  
  8. var
  9. n, i, dl, fr, osn, str, tr: integer;
  10. mas: array[1..1000, 1..1000] of integer;
  11.  
  12. procedure check(a,b: integer);
  13. begin
  14. if(mas[a,b] > 9) then begin
  15. inc(mas[a,b-1], mas[a,b] div 10);
  16. mas[a,b] := mas[a,b] mod 10;
  17. if(b = fr) then dec(fr);
  18. end;
  19. end;
  20.  
  21. procedure kostyl();
  22. var
  23. pp: integer;
  24. begin
  25. for pp := 1 to fr do
  26. if(mas[str,pp] > 0) then begin fr := pp; break; end;
  27. end;
  28.  
  29. begin
  30. readln(n);
  31. str := 1;
  32. dl := 850;
  33. fr := 850;
  34. mas[str,dl] := 1;
  35. for osn := 2 to n do begin
  36. inc(str);
  37.  
  38. for i := dl downto fr do begin
  39. mas[str,i] := mas[str,i] + mas[str-1,i] * (osn mod 10);
  40. check(str, i); check(str, i - 1);
  41. end;
  42.  
  43. if(osn > 9) then begin
  44. inc(str);
  45. for i := dl downto fr-1 do begin
  46. mas[str,i-1] := mas[str,i-1] + mas[str-2,i] * ((osn div 10) mod 10);
  47. check(str, i-1); check(str, i-2); check(str, i-3);
  48. end;
  49. kostyl();
  50. end;
  51. if(osn > 9) then begin
  52. inc(str);
  53. for i := dl downto fr do begin
  54. mas[str,i] := mas[str-2,i] + mas[str-1,i] + mas[str,i];
  55. check(str, i); check(str, i - 1); check(str, i - 2);
  56. end;
  57. end;
  58. end;
  59. {for i := fr to dl do
  60. write(mas[str-2,i]);
  61. writeln;
  62. for i := fr to dl do
  63. write(mas[str-1,i]); writeln; }
  64. tr := 0;
  65. for i := fr to dl do begin
  66. write(mas[str,i]); inc(tr); if(tr = 3) then begin write(' '); tr := 0; end end;
  67. end.
Advertisement
Add Comment
Please, Sign In to add comment