Răspuns :
Stiind ca sunt numere reale pozitive ordonate crescator, atunci nu avem nevoie de vreun vector, pur si simplu luam fiecare element in parte.
Stiind ca intervalele sunt de forma [x;x+1] trebuie sa verificam doar daca numarul respectiv este mai mic decat x+1 si sa stabilim xul initial
Asadar punem conditia: daca numarul real>nr intreg+1, atunci iti trebuie un nou interval, incrementeaza numarul de intervale cu 1 si stabileste urmatorul nr intreg ca partea intreaga a numarului real curent+1
Este un algoritm eficient pentru ca citeste sirul o singura data si foloseste doar 2 variabile intermediare: nr_intreg si nr_intervale
#include <iostream>
#include <fstream>
using namespace std;
int main(){
int n,nr_intervale=0,nr_intreg=-1;
double x;
ifstream fin("numere.in");
fin>>n;
while(n>0){
fin>>x;
if(x>nr_intreg){
nr_intervale++;
nr_intreg=(int)x+1;
}
n--;
}
cout<<nr_intervale;
}
Stiind ca intervalele sunt de forma [x;x+1] trebuie sa verificam doar daca numarul respectiv este mai mic decat x+1 si sa stabilim xul initial
Asadar punem conditia: daca numarul real>nr intreg+1, atunci iti trebuie un nou interval, incrementeaza numarul de intervale cu 1 si stabileste urmatorul nr intreg ca partea intreaga a numarului real curent+1
Este un algoritm eficient pentru ca citeste sirul o singura data si foloseste doar 2 variabile intermediare: nr_intreg si nr_intervale
#include <iostream>
#include <fstream>
using namespace std;
int main(){
int n,nr_intervale=0,nr_intreg=-1;
double x;
ifstream fin("numere.in");
fin>>n;
while(n>0){
fin>>x;
if(x>nr_intreg){
nr_intervale++;
nr_intreg=(int)x+1;
}
n--;
}
cout<<nr_intervale;
}
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Sperăm că informațiile oferite v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Așteptăm cu nerăbdare să vă revedem și nu uitați să ne salvați în lista de favorite!