In C++, cu for
Cerinta
Jucandu-se cu un sir de numere, Petru a descoperit ca numerele sale norocoase, sunt cele care pot fi scrise ca suma de 2 numere consecutive. Acesta vrea sa colectioneze toate numerele norocoase, aflate intr-un interval ales de el. Deoarece unele intervale sunt foarte mari, acesta va roaga pe voi sa ii scrieti un program care cauta numerele norocoase pentru el.
Date de intrare
Se vor citi de la tastatura 2 numere, a si b, reprezentand capetele intervalului deschis [a, b].
Date de iesire
Se vor afisa toate numerele norocoase din acest interval separate prin cate un spatiu.
Restrictii si precizari
1 ≤ a, b ≤ 1.000.000
Exemplu
Date de intrare Date de iesire
5 11 5 7 9 11
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int a, b, i; //declarare variabile
cin >> a >> b; //citire variabile
if (a%2==0) //daca a este par
i=a+1; //primul nr norocos va fi succesorul lui a
else
i=a+2; //altfel, primul nr va fi urmatorul nr impar, deoarece intervalul considerat este deschis
for (i; i<b; i=i+2) //parcurgem nr norocoase (toate nr impare consecutive), fara sa-l includem pe b
{
cout << i << " "; //afisam nr norocoase cu spatii
}
return 0;
}
Explicație:
/// e important sa consideram intervalul cu numere cuprinse intre a si b, fara a include capetele
/// precizare: un nr este norocos <=> x=2*k+1 (k+k+1)
/// intervalul se poate parcurge si din 1 in 1, dar trebuie verificat ca nr este impar
using namespace std;
int main()
{
int a, b, i; //declarare variabile
cin >> a >> b; //citire variabile
if (a%2==0) //daca a este par
i=a+1; //primul nr norocos va fi succesorul lui a
else
i=a;
for (i; i<=b; i=i+2) //parcurgem nr norocoase (toate nr impare consecutive)
{
cout << i << " "; //afisam nr norocoase cu spatii
}
return 0;
}
using namespace std;
int main ()
{
unsigned int a,b,j,i;
cin>>a>>b;
if (a>b)
{
unsigned int x=a;
a=b;
b=x;
}
for (i=a;i<=b;i=i+1)
{
if (i%2==0)
cout< }
return 0;
}