DMG

Ispisivanje brojeva

DMG
Jul 3rd, 2012
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. /* Program koji ispisuje brojeve do n (n<=210) na ovakav način:
  2.  
  3.     1   3   4  10  11  21  22  36
  4.     2   5   9  12  20  23  35
  5.     6   8  13  19  24  34
  6.     7  14  18  25  33
  7.    15  17  26  32
  8.    16  27  31
  9.    28  30
  10.    29                  */
  11.  
  12. #include <iostream>
  13. #include <cmath>
  14. using namespace std;
  15.  
  16. main()
  17. {
  18.       int n, a[210][210];
  19.            
  20.       cin >> n;
  21.      
  22.       for (int i=0; i<sqrt(n*2); i++)
  23.       for (int j=0; j<sqrt(n*2); j++)
  24.       a[i][j] = 0;
  25.      
  26.       a[0][0] = 1;
  27.      
  28.       for (int i=1; i<sqrt(n*2); i++)
  29.           if (i%2==1)
  30.           a[i][0] = a[i-1][0] + 1;
  31.           else
  32.           a[i][0] = a[i-1][0] + 4*(i/2);
  33.          
  34.       for (int i=1; i<sqrt(n*2); i++)
  35.           if (i%2==1)
  36.           a[0][i] = a[0][i-1] + i*2;
  37.           else
  38.           a[0][i] = a[0][i-1] + 1;
  39.          
  40.       for (int i=1; i<sqrt(n*2); i++)
  41.       for (int j=1; j<sqrt(n*2); j++)
  42.           a[i][j] = a[i-1][j-1] + (i+j)*2;
  43.  
  44.  
  45.       for (int i=0; i<sqrt(n*2); i++)
  46.       {
  47.           for (int j=0; j<sqrt(n*2); j++)
  48.           if  ((a[i][j] != 0)&&(i+j<sqrt(n*2))&&(a[i][j] <= n))
  49.               if (a[i][j]<10)
  50.               cout << "  " << a[i][j] << " ";
  51.               else if (a[i][j]<100)
  52.               cout << " " << a[i][j] << " ";
  53.               else
  54.               cout << a[i][j] << " ";
  55.           cout << endl;
  56.       }
  57.      
  58.       system ("PAUSE");
  59. }
Advertisement
Add Comment
Please, Sign In to add comment