Advertisement
Nudza

Untitled

Mar 19th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <iomanip>
  4. #include <stdexcept>
  5. typedef std::vector<std::vector<int>>Matrica ;
  6. int NajvecaSirina(Matrica m){
  7. //brojimo cifre u zadnjem redu, jer je tu sig najveca!
  8. int brojac(0),n(0),max(0);
  9. int broj_redova(m.size());
  10. for(int i=broj_redova-1; i<broj_redova; i++){
  11. for(int j=0; j<broj_redova; j++){
  12. n=m[i][j];
  13. while(n!=0){
  14. n = n/10;
  15. brojac++;
  16. }
  17. if(brojac>max) max=brojac;
  18. }
  19. }
  20. return max;
  21. }
  22. Matrica PascalovTrougao(int x){
  23. if(x<0) throw std::domain_error ("Broj redova ne smije biti negativan");
  24. Matrica a(x,std::vector<int>(x));
  25. for(int i=0; i<x; i++){
  26. a[i].resize(i+1);
  27. }
  28. for(int i=0; i<x; i++){
  29. for(int j=0; j<x; j++){
  30. if(i==0 || j==0 || (i==1 && j==1)){
  31. a[i][j] = 1;
  32. }else
  33. a[i][j]=a[i-1][j]+a[i-1][j-1];
  34. }
  35. }
  36.  
  37. return a;
  38.  
  39. }
  40.  
  41. int main (){
  42. int n;
  43. Matrica m;
  44. std::cout<<"Unesite broj redova: ";
  45. std::cin>>n;
  46. m = PascalovTrougao(n);
  47. int sirina;
  48. sirina = NajvecaSirina(m);
  49. for(int i=0; i<n; i++){
  50. std::cout<<std::endl;
  51. for(int j=0; j<m[i].size(); j++){
  52. std::cout<<std::setw(sirina + 1)<<std::right<<m[i][j];
  53. }
  54. }
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement