Informatică, întrebare adresată de Buldog2005, 8 ani în urmă

[C++]
Monede. Se consideră n monede, toate având aceeaşi greutate cu excepţia unei monede false. Aveţi la dispoziţie o balanţă fără greutăţi. Elaboraţi un program ce determină moneda falsă în urma unui număr minim de cântăriri. Totodată programul va determina dacă moneda falsă este mai uşoară sau mai grea ca celelalte.
VA ROG E URGENT, AM STUDIU INDIVIDUAL SI SUNT NOOB LA INFO

Răspunsuri la întrebare

Răspuns de Sergetec
1

Salut!

Ai mai jos rezolvarea

#include <iostream>

using namespace std;

int main()

{

 int n, greutate, x;

 cin >> n >> x;

 bool ok = true;

 for (int i = 2; i <= n && ok; ++i)

 {

   cin >> greutate;

   if (greutate != x)

   {

     ok = false;

   }

 }

 cout << "Moneda falsa are greutatea " << greutate << "\n";

 if (greutate > x)

 {

   cout << "Moneda falsa este mai grea cu " << greutate - x;

 }

 else

 {

   cout << "Moneda falsa este mai usoara cu " << x - greutate;

 }

 return 0;

}


andrei750238: 1. Nu cred ca asta ar fi varianta care conduce la numarul minim de cantariri. Ma gandesc ca o abordare de tip divide et impera in care comparam mai multe monede odata ar da un rezultat mult mai bun.

2. Daca prima moneda (x-ul) este moneda cu greutate diferita cred ca ne va afisa ca a doua moneda este cea cu problema.
Alte întrebări interesante