Advertisement
LisunovaMaryna

lab2.2 c++

Oct 30th, 2023
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.21 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. int readNumPositive()
  4. {
  5.     int num;
  6.     bool isIncorrect;
  7.     do
  8.     {
  9.         isIncorrect = false;
  10.         std::cin >> num;
  11.         if (std::cin.fail())
  12.         {
  13.             std::cin.clear();
  14.             while (std::cin.get() != '\n');
  15.             isIncorrect = true;
  16.             std::cerr << "Symbols have been entered or exceeding permissible limits.
  17.                          Enter the number : ";
  18.         }
  19.         if (!isIncorrect && std::cin.get() != '\n')
  20.         {
  21.             while (std::cin.get() != '\n');
  22.             std::cerr << "Incorrect value. Enter the number: ";
  23.             isIncorrect = true;
  24.         }
  25.         if (!isIncorrect && num < 0)
  26.         {
  27.             std::cerr << "Incorrect value (num must be > 0). Enter a valid value: ";
  28.             isIncorrect = true;
  29.         }
  30.     } while (isIncorrect);
  31.     return num;
  32. }
  33.  
  34. int countRoot(int num)
  35. {
  36.     float float_MAX;
  37.     int MAX;
  38.     float_MAX = (pow(num, 0.333333));
  39.     float_MAX = round(float_MAX);
  40.     MAX = static_cast<int>(float_MAX);
  41.     return MAX;
  42. }
  43.  
  44. void showCombinations(int& k, int MAX, int num)
  45. {
  46.     int x;
  47.     int y;
  48.     int z;
  49.     MAX++;
  50.     for (x = 0; x < MAX; x++)
  51.     {
  52.         for (y = 0; y < MAX; y++)
  53.         {
  54.             for (z = 0; z < MAX; z++)
  55.             {
  56.                 if (x * x * x + y * y * y + z * z * z == num)
  57.                 {
  58.                     std::cout << x << " " << y << " " << z << std::endl;
  59.                     k++;
  60.                 }
  61.             }
  62.         }
  63.     }
  64. }
  65.  
  66. void showResult(int& k)
  67. {
  68.     if (k != 0)
  69.     {
  70.         std::cout << "Finite number of combinations: " << k;
  71.     }
  72.     else
  73.     {
  74.         std::cout << "There are no combinations.";
  75.     }
  76. }
  77.  
  78. void whatDoesTheProgramDo()
  79. {
  80.     std::cout << "The program indicates all triples of numbers X, Y, Z, that satisfy
  81.                  the condition: X^3 + Y^3 + Z^3 = Num." << std::endl;
  82. }
  83.  
  84.  
  85. int main()
  86. {
  87.     int num;
  88.     int x;
  89.     int y;
  90.     int z;
  91.     int k;
  92.     int MAX;
  93.     whatDoesTheProgramDo();
  94.     k = 0;
  95.     std::cout << "Enter the number: ";
  96.     num = readNumPositive();
  97.     MAX = countRoot(num);
  98.     showCombinations(k, MAX, num);
  99.     showResult(k);
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement