Documente Academic
Documente Profesional
Documente Cultură
Cerință
RSD-ul a două numere este restul împărțirii sumei la diferența lor. Învățătoarea le-a dat elevilor
un test unde aveau de efectuat mai multe calcule de acest gen, iar acum are nevoie de un
"calculator" pentru a putea verifica mai ușor rezultatele obținute de elevi. O puteți ajuta?
Date de intrare
Se citesc cele două numere, A și B.
Date de ieșire
Programul va afișa RSD-ul celor două numere.
#include <iostream>
using namespace std;
int main(){
int A, B;
cin >> A >> B;
cout << ((A+B)%(A-B));
return 0;
}
2. Cerință
Trei colegi de serviciu au primit fiecare câte un număr de task-uri de la șeful lor de echipă și vor
să și le împartă în mod egal. Găsește un mod de a le redistribui.
Există cazuri în care nu există o metodă de a atribui toate task-urile celor 3 angajați astfel încât
fiecare să aibă, la final, același număr de task-uri. În acest caz, se va găsi o metodă de a elimina
un număr minim de task-uri din cele inițiale astfel încât cele rămase să poată fi redistribuite în
mod egal.
Date de intrare
Se vor citi de la tastatură 3 numere a,b și c, care reprezintă numărul de task-uri atribuite inițial
primului coleg, celui de-al doilea, respectiv celui de-al treilea.
Date de ieșire
Programul va afișa pe ecran numărul X, care reprezintă numărul de task-uri pe care îl are fiecare
coleg după împărțirea lor în mod egal, conform cerinței.
Restricții și precizări: 0 ≤ a, b, c ≤100
#include <iostream>
using namespace std;
int main(){
int a, b, c; // numărul de task-uri atribuite inițial primului coleg, celui de-al doilea, respectiv celui de-al
treilea coleg
cin >> a >> b >> c;
cout << (a+b+c)/3;
return 0;
}
3. Cerință
Un alergător profesionist se pregătește pentru o competiție în felul următor: dacă astăzi a
alergat X kilometri, mâine va alerga
X + rkilometri.
Se știe că astăzi a alergat a kilometri. Câți kilometri va alerga mâine? Dar peste două zile?
Date de intrare
Se dau două numere a și r, având semnificațiile din enunț.
Date de ieșire
Cele două valori cerute se vor afișa pe aceași linie, separate printr-un spațiu.
#include <iostream>
using namespace std;
int main(){
int a, r; // dacă astăzi a alergat x kilometri, mâine va alerga x + r kilometri
cin >> a >> r;
cout << a+r << " " << (a+r)+r;
return 0;
}
4. Alexandru este elev in clasa a IX-a. Acesta tocmai a învățat la ora de matematică despre
progresiile aritmetice și vrea să se folosească de abilitățile sale de programator pentru a-și
face automat tema. În problema de la temă, i se dau două numere consecutive aflate in
progresie aritmetică, iar acesta trebuie să afle următorii trei termeni ai progresiei. 3
numere întregi a, b și c sunt termeni consecutivi ai unei progresii aritmetice dacă
diferența dintre a și b e egală cu diferența dintre b și c.
Date de intrare
Se citesc de la tastatură numerele a și b, reprezentând cele 2 numere consecutive aflate in
progresie aritmetică.
Date de ieșire
Se vor afișa pe ecran următorii 3 termeni ai progresiei aritmetice respective.
Restricții și precizări
Se va avea în vedere că a și b sunt numere întregi.
-1000 < a, b < 1000
5. După ce a devenit foarte popular, Mark a primit în total A cadouri de la fanii săi. Acum
vrea să se mute într-o casă mai mare și trebuie să pună toate cadourile în cutii pentru a se
putea muta. Pentru că e ordonat, Mark vrea să pună în fiecare cutie exact B cadouri.
Putem să ne imaginăm că Mark poate să facă rost de oricâte cutii oricât de mari.
Spuneți dacă Mark poate să își mute cadourile respectând condiția din enunț.
Date de intrare
Se citesc de la tastatură cele două numere A și B.
Date de ieșire
Programul va afișa pe ecran posibil dacă e posibil ca Mark să se mute respectând condiția
sau imposibil în caz contrar.
Restricții și precizări
Numerele sunt strict pozitive și se încadrează în tipul de date int.
Exemplu
Date de intrare Date de ieșire
6 3 posibil
6 4 imposibil
#include <iostream>
using namespace std;
int main() {
int A, B;
cin >> A >> B;
if (A%B==0){
cout << "Posibil";
}
if ( A%B!=0){
cout << "Imposibil";
}
return 0;
}
6. Cerință
Se dau 3 numere naturale, a, b și c, care respectă condiția a < b < c. Sarcina ta este să determini
dacă tripletul (a, b, c) respectă următoarea condiţie: a2 + b2 = c2.
Date de intrare
De la tastatură se vor citi cele trei numere naturale a,b,c.
Date de ieşire
Pe ecran se va afişa DA, în cazul în care cele trei numere respectă condiţia dată, sau NU, în caz
contrar.
Restricţii şi precizări :1 ≤ a < b < c ≤ 1000
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
if (a*a+b*b==c*c){
cout << "DA";
}
if ( a*a+b*b!=c*c){
cout << "NU";
}
return 0;
}
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
if (N%2==0){
cout << "fizz";
}
if (N%3==0){
cout << "buzz";
}
return 0;
}
8. Se dau două numere A și B. Se cere să se afișeze cel mai mare dintre ele.
Date de intrare
Se citesc de la tastatură două numere, reprezentând valorile A, respectiv B.
Date de ieșire
Programul va afișa pe ecran maximul celor 2 numere.
Restricții
Numerele se încadrează in tipul de date int.
#include <iostream>
using namespace std;
int main() {
int A, B;
cin>> A>>B;
if (A>B){
cout<< A;
}else {
cout<< B;
}
return 0;
}
#include <iostream>
int main() {
int A, B;
cin>> A>>B; // Sa se afiseze doua numere crescator
if (A<B){
cout<< A<<" "<<B;
}else {
cout<< B<<" "<<A;
}
return 0;
}
int main() {
int A, B, C;
cin >> A >> B >> C;
if (A ==A){
if((B > A) && (C >=B)) {
cout << A << " " << B << " " << C;
}
else if ((C >= A) && (B > C)) {
cout << A << " " << C << " " << B;
}
}
if (B == B) {
if((A >= B) && (C > A)) {
cout << B << " " << A << " " << C;
}
else if ((C >= B) && (A >= B)) {
cout << B << " " << C << " " << A;
}
}
if (C == C) {
if((A >C) && (B >= A)){
cout << C << " " << A << " " << B;
}
else if ((B > C) && (A > B)){
cout << C << " " << B << " " << A;
}
return 0;
}
Cerință
11. Se dau veniturile unei companii în săptămâna precedentă și în cea actuală. Să se afle dacă
veniturile au crescut, scăzut sau dacă au rămas la fel.
Date de intrare
Se dau două numere: primul reprezintă venitul săptămânii precedente, iar al doilea al săptămânii
curente.
Date de ieșire
Restricții
#include <iostream>
int main() { // Sa se compare doua venituri, sa se afiseze daca au crescut, scazut sau au
ramas constante
if (A < B){
if (B < A) {
cout<< "SCAZUT";
if (A == B) {
return 0;
12.Cerință
Axa numerelor reale conține toate numerele negative și pozitive, aranjate în ordine crescătoare
de la stânga la dreapta. Ți se dă o valoare întreagă x. Scrie un program care să afișeze distanța
dintre punctul de coordonată x și origine (punctul de coordonată 0).
Axa numerelor:
03-512-1-2-3-4
Această noțiune este foarte utilă atunci când vrem să calculăm distanțe dintre diverse puncte și
este foarte folosită în jocurile video.
Date de intrare
Date de ieșire
#include <iostream>
int main() { // program care să afișeze distanța dintre punctul de coordonată x și origine de pe
axa numerelor
int x;
cin >> x;
if (x > 0){
if (x <= 0) {
cout<< (x-x)-x;
}
return 0;
13.Cerință
Două boxe se pot conecta între ele dacă sunt modele diferite. Dându-se 3 numere
naturale, A , B și C, reprezentând modelele a 3 boxe, să se verifice dacă se pot conecta măcar doua
boxe între ele.
Date de intrare
Date de ieșire
Programul va afișa mesajul DA dacă există cel puțin două boxe ce se pot conecta între ele,
respectiv NU în caz contrar.
#include <iostream>
int main() { // Două boxe se pot conecta între ele dacă sunt modele diferite
int A, B, C; //Se dau 3 nr natur., A , B și C (modelele a 3 boxe ), verifica dacă se pot conecta
măcar doua boxe între ele.
cout <<"DA";
}
cout<< "NU";
cout<< "DA";
return 0;
14.Cerință
Ești în perioada de testare la o firmă de software unde ai început să lucrezi acum câteva luni. Ai
primit ca și task să faci un program care să verifice dacă un șir format din 4 numere întregi este
monoton crescător sau descrescător. Poți să îl rezolvi?
Date de intrare
Date de ieșire
Restricții
#include <iostream>
int main() {
int A, B, C, D;
if(((A <= B) && (B <= C) && (C < D))||((A <= B) && (B < C) && (C <= D))) {
else if(((D <= C) && (C <= B) && (B < A))||((D <= C) && (C < B) && (B <= A))) {
else {
cout<< "Nemonoton";
15. Cerință
Se dau patru numere întregi a, b, c și d. Să se verifice dacă numerele se află într-o progresie
geometrică.
Explicații
Raportul dintre două numere a și b este valoarea împărțirii lui a la b.
Știind că dobânda lunară este de 1% (deci având o progresie geometrică), putem calcula foarte
ușor câți bani vom avea în cont după 10 ani (dacă nu ne-am atinge de ei).
Date de intrare
Date de ieșire
Programul va afișa ca și date de ieșire DA, dacă cele patru numere se află într-o progresie
geometrică și NU, dacă cele patru numere nu îndeplinesc condiția.
Restricții și precizări
Date de intrare
2 4 -8 16 NU
3 9 27 81 DA
#include <iostream>
using namespace std;
int main()
{
int a,b,c,d;
cin>>a>>b>>c>>d;
if ((a != 0) && (b !=0) && (a!=b) )
{
if ((a != 1) && (b !=1) )
{
if( ((b/a) == (c/b)) &&((c/b) == (d/c)) && (b%a == 0) && (c%b == 0) && (d%c == 0) )
{
cout << "DA";
}
else
{
cout<<"NU";
}
}
else
{cout<<"NU";
}
}
else
{
cout<<"NU";
}
return 0;
}
int main() {
int X, inversul, rest;
inversul = 0;
cin >> X;
while(X != 0) {
rest = X%10;
inversul = inversul*10 + rest;
X /= 10;
}
return 0;
}
17. Dându-se un număr natural a, să se verifice dacă a și inversul (oglinditul) lui a sunt ambele
numere prime.
Date de intrare
Se citește de la tastatură numărul natural a.
Date de ieșire
Să se afișeze DA dacă numărul a și inversul său sunt ambele prime sau NU, în caz contrar.
Restricții și precizări
1 ≤ a < 300000
a nu are ultima cifră 0
Exemplu
Date de intrare Date de ieșire
5 DA
122 NU