Răspuns :
Numerele reale sunt ordonate strict crescator. Atunci, orice interval care cuprinde numere in ordine neconsecutiva(de exemplu elementul 1 si elementul 3) va fi un interval mai mare decat cele doua numere in ordine consecutiva(elementul 1 si elementul 2). Atunci, numarul minim de numere intregi ce se gaseste in toate intervalele este dat de numarul minim de numere din intervalele diferenta dintre numerele consecutive.
Numarul de numere intregi dintr-un interval este dat de diferenta dintre partile intregi ale celor doua numere reale, adaugand 1 daca primul nr real este de fapt intreg
Ex: [5.1]-[3.5]=5-3=2 2 numere intregi intr-adevar: 4 si 5
Dar daca am avea 3 in loc de 3.5
[5.1]-[3.0]+1=5-3+1=3 ceaa ce este corect: acum avem 3,4,5 numere intregi
#include <iostream>
#include <fstream>
#include <limits.h>
using namespace std;
int main(){
//int max este inclus in limits.h
int n,min=INT_MAX,diferenta;
double nr_trecut,nr_actual;
ifstream fin("numere.in");
fin>>n>>nr_trecut;
//scadem nr_trecut deja luat in considerare
n--;
while(n>0){
fin>>nr_actual;
if(nr_trecut-(int)nr_trecut==0){
diferenta=(int)nr_actual-(int)nr_trecut+1;
}
else{
diferenta=(int)nr_actual-(int)nr_trecut;
}
if(diferenta<min){
min=diferenta;
}
nr_trecut=nr_actual;
n--;
}
cout<<min;
return 0;
}
Numarul de numere intregi dintr-un interval este dat de diferenta dintre partile intregi ale celor doua numere reale, adaugand 1 daca primul nr real este de fapt intreg
Ex: [5.1]-[3.5]=5-3=2 2 numere intregi intr-adevar: 4 si 5
Dar daca am avea 3 in loc de 3.5
[5.1]-[3.0]+1=5-3+1=3 ceaa ce este corect: acum avem 3,4,5 numere intregi
#include <iostream>
#include <fstream>
#include <limits.h>
using namespace std;
int main(){
//int max este inclus in limits.h
int n,min=INT_MAX,diferenta;
double nr_trecut,nr_actual;
ifstream fin("numere.in");
fin>>n>>nr_trecut;
//scadem nr_trecut deja luat in considerare
n--;
while(n>0){
fin>>nr_actual;
if(nr_trecut-(int)nr_trecut==0){
diferenta=(int)nr_actual-(int)nr_trecut+1;
}
else{
diferenta=(int)nr_actual-(int)nr_trecut;
}
if(diferenta<min){
min=diferenta;
}
nr_trecut=nr_actual;
n--;
}
cout<<min;
return 0;
}
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!