Daca suntem putin atenti in momentul cand rezolvam probleme de pe pbinfo, vom vedea ca unele probleme sunt inrudite. M-am gandit sa abordez o astfel de suita de 3 probleme asemanatoare:

Problema #327 AfisareNumere

Cerinţa

Se dă un număr natural n. Afișați în ordine crescătoare primele n numere naturale nenule.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieşire

Programul afișează pe ecran în ordine crescătoare primele n numere naturale nenule, separate prin exact un spațiu.

Restricţii şi precizări

  • 1 ≤ n ≤ 100
Daca rezolvam acest algoritm, sigur vom putea implementa o functie care sa imi genereze frumos toate numerele naturale in ordine crescatoare.
#include 
using namespace std;
int getNumber(){
    int number;
    cin >> number;
    return number;
}
void scriereCrescatoare(int a){
    for(int i=1;i<=a;i++)
    {
        cout<<i<<" ";
    }
}
int main()
{
    int n = getNumber();
    scriereCrescatoare(n);
    return 0;    
}
O alta problema din aceeasi serie este:

Problema #328 AfisareNumere1

Cerinţa

Se dă un număr natural n. Afișați în ordine descrescătoare primele n numere naturale nenule.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieşire

Programul afișează pe ecran în ordine descrescătoare primele n numere naturale nenule, separate prin exact un spațiu.

Restricţii şi precizări

  • 1 ≤ n ≤ 100
Este foarte asemanatoare cu cea explicata mai sus doar ca scrierea trebuie sa se faca descrescator. Modificarea trebuie facuta doar in interiorul functiei care genereaza valorile. Parcurgerea trebuie facuta descrescator.
#include<iostream>
using namespace std;
int getNumber(){ 
   int number;
   cin >> number;
   return number;
}
void scriereDescrescatoare(int a){
   for(int i=a;i>=1;i--) {
      cout<<i<<" "; 
   }
}
int main() {
 int n = getNumber();
 scriereDescrescatoare(n);
 return 0;
}
Cea de a treia problema este o sinteza a primelor doua probleme.

#3231 AfisareNumere2 

Cerinţa

Se dă un număr natural n. Afișați pe o linie primele n numere naturale nenule în ordine crescătoare, iar pe linia următoare aceleași numere, dar în ordine descrescătoare.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieşire

Programul afișează pe ecran, pe linii diferite numere cerute. Numerele de pe aceeași linie sunt separate prin câte un spațiu.

Restricţii şi precizări

  • 1 ≤ n ≤ 100
In cazul acestei probleme, algoritmul de fapt este obtinut prin combinarea celor doi algoritmi prezentati anterior. Se poate observa astfel cat de rapid si usor pot fi construiti noi algoritmi mai complecsi, daca algoritmii simpli au fost rezolvati corect folosindu-se functii.
#include <iostream>
using namespace std;
int n;
int getNumber(){
    int number;
    cin >> number;
    return number;
}
void scriereDescrescatoare(int a){
    for(int i=a;i>=1;i--)
    {
        cout<<i<<" ";
    }
}
void scriereCrescatoare(int a){
    for(int i=1;i<=a;i++)
    {
        cout<<i<<" ";
    }
}
int main() {
    n=getNumber();    
    scriereCrescatoare(n);
    cout<<endl;
    scriereDescrescatoare(n);
    return 0;
}

Lasă un răspuns