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 pentru vizita pe site-ul nostru dedicat Informatică. Ne dorim ca informațiile furnizate să vă fi fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Revenirea dumneavoastră ne bucură, iar pentru acces rapid, adăugați-ne la favorite!