Maison  >  Article  >  développement back-end  >  En C++, traduisez ce qui suit en chinois : Trouvez le rectangle avec la plus petite différence entre la longueur et la largeur.

En C++, traduisez ce qui suit en chinois : Trouvez le rectangle avec la plus petite différence entre la longueur et la largeur.

王林
王林avant
2023-09-16 13:21:09631parcourir

En C++, traduisez ce qui suit en chinois : Trouvez le rectangle avec la plus petite différence entre la longueur et la largeur.

Étant donné une zone rectangulaire en entrée. Le but est de trouver les côtés du rectangle qui minimisent la différence entre longueur et largeur.

Aire du rectangle = longueur * largeur.

Exemple

Entrée− aire = 100

Sortie− Les côtés du rectangle avec la plus petite différence :

longueur = 10, largeur = 10

Explication− Le côté avec aire = 100.

2-50, 4-25, 5-20, 10-10. Le côté avec la plus petite différence est 10-10, Différence = 0. Comme nous le savons tous, un carré est un rectangle dont tous les côtés sont de même longueur.

Entrée− Aire = 254

Sortie− Côtés du rectangle avec différence minimale :

Longueur = 127, Largeur = 2

Explication - Différence minimale des seuls côtés possibles pour créer un rectangle d'aire 254 Les valeurs sont 127 et 2.

La méthode utilisée dans le programme ci-dessous est la suivante

Ici, nous trouverons la valeur racine carrée de la zone et passerons de là à 1 afin de trouver la valeur avec la plus petite différence et zone = zone d'entrée.

  • Prenez la variable entière Area comme entrée.

    li>
  • La fonction fragmentSides(int area1) accepte la zone1 et imprime les longueurs des côtés du rectangle avec la plus petite différence possible entre la longueur et la largeur.

  • Prenez la longueur entière, la largeur, tmp1.

  • Définissez tmp1=ceil(sqrt(area1))

  • Utilisez une boucle for pour parcourir (int i = tmp1; i > 0; i--).

  • Si (area1 % i == 0) alors définissez length=area/i et width=i.

  • Utilisez l'instruction break pour arrêter l'itération.

  • Imprimez la longueur et la largeur du côté.

Exemple

#include <bits/stdc++.h>
using namespace std;
void rectangleSides(int area1){
   int length, breadth;
   int tmp1 = ceil(sqrt(area1));
   for (int i = tmp1; i > 0; i--) {
      if (area1 % i == 0) {

         length = ceil(area1 / i);
         breadth = i;
         break;
      }
   }
   cout<<"Sides of Rectangle with minimum difference :"<<endl;
   cout << "Length = " << length << ", Breadth = "   << breadth << endl;
}
int main(){
   int Area = 140;
   rectangleSides(Area);
   return 0;
}

Output

Si nous exécutons le code ci-dessus, il générera la sortie suivante

Sides of Rectangle with minimum difference :
Length = 14, Breadth = 10

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer