Informatică, întrebare adresată de donyelena23, 8 ani în urmă

SOS, informatica, olimpiada, din interes

Anexe:

Răspunsuri la întrebare

Răspuns de uleiaalex
0

Sunt facute in C++. Sa iti fie de folos! Programele merg. Te poti inspira si poate gasesti solutii mai bune / optimizari de cod.

1.

#include <iostream>

using namespace std;

int main()

{

   int m,n;

   cin>>n;cin>>m;

       

   int sumaPerimetru = 0;

   

   //Declarare matrice si elementele ei

   int **ma;

   ma = new int*[n];    

   for(int i = 0;i<n;i++)

   {

       ma[i] = new int[m];

   }

   

   //Citeste si afiseaza instant maximul de pe fiecare linie si suma elem perimetru

   //Citire elemente matrice

   for(int i = 0;i<n;i++)

   {

       int max = 0;

       for(int j=0;j<m;j++)

       {

           cout<<"ma["<<i<<","<<j<<"]=";

           cin>>ma[i][j];

           if(j==0)

               max = ma[i][j];

           else

           {

               if (ma[i][j] > max)

                  max = ma[i][j];

           }

           

           if (i == 0 || i == n-1)

               sumaPerimetru += ma[i][j];

           else if(j==0 || j==m-1)

               sumaPerimetru += ma[i][j];

       }

       cout<<"Elem. max de pe linia "<<i<<" este :"<<max<<endl;

   }

   

   cout<<endl;

   //Afisare matrice

   for(int i = 0;i<n;i++)

   {

       for(int j=0;j<m;j++)

       {

           cout<<ma[i][j]<<" ";

       }

       cout<<endl;

   }

   

   cout<<"Suma elem de pe perimetrul matricei este: "<<sumaPerimetru<<endl;

   

   

   //Aceasta este idem doar ca se proceseaza dupa ce s-au citit elementele matricei

   //Am zis sa le pun ambele sa alegi tu in functie de ce iti cere.

   //Daca nu ai restrictie de timp faci cum e mai jos altfel daca ai as recomanda cum

   //este mai sus pt ca executi algoritmul fara a mai parcurge inca odata matricea

   //inafara de parcurgerea de citire.

   sumaPerimetru=0;

   for(int i = 0;i<n;i++)

   {

       int max = ma[i][0];

       for(int j=0;j<m;j++)

       {

           if (i == 0 || i == n-1)

               sumaPerimetru += ma[i][j];

           else if(j==0 || j==m-1)

               sumaPerimetru += ma[i][j];

           if (ma[i][j] > max)

              max = ma[i][j];

       }

       cout<<"Elem. max de pe linia "<<i<<" este :"<<max<<endl;    

   }

   cout<<"Suma elem de pe perimetrul matricei este: "<<sumaPerimetru<<endl;

   

   return 0;

}

2.

#include <iostream>

using namespace std;

int fib(int x) {

   if (x == 0)

       return 0;

   if (x == 1)

       return 1;

   return fib(x-1)+fib(x-2);

}

int main()

{

   int n = 32000;

   

   int sum=0;

   

   while(n>0)

   {

       int uc = n % 10;

       n/=10;

       sum += uc*uc;

   }

   

   cout<<sum<<endl;

   

   int i = 0;

   while(fib(i) < sum)

   {

       i++;

   }

   

   if(fib(i) == sum)

       cout<<"DA";

   else

       cout<<"NU";

   

   return 0;

}

3.

// Example program

#include <iostream>

#include<bits/stdc++.h>  

using namespace std;

int main()

{

   int n;

   cin>>n;

   //Declarare matrice si elementele ei

   int **ma;

   ma = new int*[n];    

   for(int i = 0;i<n;i++)

   {

       ma[i] = new int[n];

   }

   

   //Citeste si afiseaza instant maximul de pe fiecare linie si suma elem perimetru

   //Citire elemente matrice

   for(int i = 0;i<n;i++)

   {

       for(int j=0;j<n;j++)

       {

           cout<<"ma["<<i<<","<<j<<"]=";

           cin>>ma[i][j];

       }

   }

   cout<<endl;

   

   //Afisare matrice // si calculare cerinta

   float maxMA = -INT_MAX;

   float minMA = INT_MAX;

   

   for(int i = 0;i<n;i++)

   {

       float tempMinMA = 0;

       float s1 = 0;

       

       float tempMaxMA = 0;

       float s2 = 0;

       

       for(int j=0;j<n;j++)

       {

           cout<<ma[i][j]<<" ";

           s1+=(float)ma[i][j];

           s2+=(float)ma[j][i];

       }

       

       tempMinMA = s1/(float)n;

       tempMaxMA = s2/(float)n;

       

       if(tempMinMA < minMA)

           minMA = tempMinMA;

       if(tempMaxMA > maxMA)

           maxMA = tempMaxMA;

           

       cout<<endl;

   }

   cout<<endl;

   

   cout<<minMA<<endl;

   cout<<maxMA<<endl;

   

   cout<<"Diferenta este: "<<maxMA-minMA;

}


Alte întrebări interesante