fork download
  1. #include <stdio.h>
  2. #include <vector>
  3.  
  4. using namespace std;
  5. typedef unsigned long long int ulong;
  6. typedef unsigned int uint;
  7.  
  8. inline ulong binomial_pascal(unsigned int n, unsigned int k){
  9. if( k>n ) return 0;
  10. if( k==0 || k==n ) return 1;
  11.  
  12. uint wynik;
  13. uint osize = 1;
  14. uint col;
  15.  
  16. vector<uint> vect;
  17.  
  18. if(k>n/2)
  19. {
  20. k=n-k;
  21. }
  22.  
  23. vect.resize(1);
  24. vect[0] = 1;
  25. for(uint row=1; row <= n; row++)
  26. {
  27. if (row % 2 == 0) {
  28. vect.resize(vect.size()+1);
  29. col = vect.size()-1;
  30. vect[col] = 2 * vect[col-1];
  31. }
  32. for(col = osize - 1; col >= 1; col--)
  33. vect[col] = vect[col] + vect[col-1];
  34. osize = vect.size();
  35. }
  36.  
  37. wynik = vect[k];
  38.  
  39. return wynik;
  40. }
  41.  
  42. #define max 49
  43.  
  44. int main(void) {
  45. unsigned int n, k, kk;
  46. ulong b, b1, b2;
  47. for( n=0; n<=max; n++ ){
  48. printf("\n%2d - ", n);
  49. //for( k=1; k<=max-n; k++ ) putchar(' ');
  50. for( k=0; k<=n; k++ ) {
  51. b=binomial_pascal(n,k);
  52. if ((k == 0) || (n == 0)) {
  53. putchar('.');
  54. } else {
  55. b1 = binomial_pascal(n-1,k-1);
  56. b2 = binomial_pascal(n-1,k);
  57. if( b != b1 + b2 ) putchar('+');
  58. else putchar('.');
  59. }
  60. putchar(' ');
  61.  
  62. }}
  63. printf("\n\n "); for( n=0; n<=max; n++ ) printf("%2d", n%10); puts("");
  64. printf( " "); for( n=0; n<=max; n++ ) if( n%10==0 ) printf("%2d", n/10); else printf(" "); puts("");
  65. puts("+ sposób zawodzi");
  66. return 0;}
Success #stdin #stdout 0.02s 2860KB
stdin
Standard input is empty
stdout
 0 - . 
 1 - . . 
 2 - . . . 
 3 - . . . . 
 4 - . . . . . 
 5 - . . . . . . 
 6 - . . . . . . . 
 7 - . . . . . . . . 
 8 - . . . . . . . . . 
 9 - . . . . . . . . . . 
10 - . . . . . . . . . . . 
11 - . . . . . . . . . . . . 
12 - . . . . . . . . . . . . . 
13 - . . . . . . . . . . . . . . 
14 - . . . . . . . . . . . . . . . 
15 - . . . . . . . . . . . . . . . . 
16 - . . . . . . . . . . . . . . . . . 
17 - . . . . . . . . . . . . . . . . . . 
18 - . . . . . . . . . . . . . . . . . . . 
19 - . . . . . . . . . . . . . . . . . . . . 
20 - . . . . . . . . . . . . . . . . . . . . . 
21 - . . . . . . . . . . . . . . . . . . . . . . 
22 - . . . . . . . . . . . . . . . . . . . . . . . 
23 - . . . . . . . . . . . . . . . . . . . . . . . . 
24 - . . . . . . . . . . . . . . . . . . . . . . . . . 
25 - . . . . . . . . . . . . . . . . . . . . . . . . . . 
26 - . . . . . . . . . . . . . . . . . . . . . . . . . . . 
27 - . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
28 - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
29 - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
30 - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
31 - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
32 - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
33 - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
34 - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
35 - . . . . . . . . . . . . . . . . . + + . . . . . . . . . . . . . . . . . 
36 - . . . . . . . . . . . . . . . + + + . + + + . . . . . . . . . . . . . . . 
37 - . . . . . . . . . . . . . . + + . . . . . . + + . . . . . . . . . . . . . . 
38 - . . . . . . . . . . . . . + + . + + . . . + + . + + . . . . . . . . . . . . . 
39 - . . . . . . . . . . . . . . . . . . + + + + . . . . . . . . . . . . . . . . . . 
40 - . . . . . . . . . . . . + + + + + + + . . . + + + + + + + . . . . . . . . . . . . 
41 - . . . . . . . . . . . . . + + . . + + . . . . + + . . + + . . . . . . . . . . . . . 
42 - . . . . . . . . . . . . + . . . + + . + + + + + . + + . . . + . . . . . . . . . . . . 
43 - . . . . . . . . . . . + + + + + + + . . . . . . . . + + + + + + + . . . . . . . . . . . 
44 - . . . . . . . . . . . . . + . . + . . + + + + + + + . . + . . + . . . . . . . . . . . . . 
45 - . . . . . . . . . . . + + . . + . . + . . . + + . . . + . . + . . + + . . . . . . . . . . . 
46 - . . . . . . . . . . . + + + + + . + + + . . + . + . . + + + . + + + + + . . . . . . . . . . . 
47 - . . . . . . . . . . + + . . + . . + . . + + . + + . + + . . + . . + . . + + . . . . . . . . . . 
48 - . . . . . . . . . . . . . . + + + + . + . . + . . . + . . + . + + + + . . . . . . . . . . . . . . 
49 - . . . . . . . . . . . . . + + . + + + + . + . + + + + . + . + + + + . + + . . . . . . . . . . . . . 

     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
     0                   1                   2                   3                   4                  
+ sposób zawodzi