М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
87773214015
87773214015
20.04.2022 12:25 •  Информатика

Необходимо найти все «пифагоровы тройки» в заданном диапазоне чисел — натуральные решения уравнения x2+y2=k2, где x, y и k лежат в интервале от l до r включительно.

👇
Ответ:
zhasik1337
zhasik1337
20.04.2022

#include <iostream>

#include <vector>

#include <cmath>

#include <algorithm>

 

struct PifaThree  

{

   int a;

   int b;

   int c;

 

   PifaThree()

   {

       a = 0;

       b = 0;

       c = 0;

   }

 

   PifaThree(int a_, int b_, int c_) : a(a_), b(b_), c(c_)

   {

 

   }

 

   ~PifaThree() {}

 

   void show()

   {

       std::cout << a << "^2 = " << b << "^2 + " << c << "^2";

   }

};

 

int main()

{

   std::vector<int> arr;

   std::vector<int> sq_arr;

   std::vector<PifaThree> results;

 

   int temp = 0;

 

   while(std::cin >> temp) //прерывается вводом не-int чего-нибудь

   {

       arr.push_back(temp);

   }

 

   if(arr.size() < 3)

   {

       std::cout << "3 or more needs";

       system("pause");

       return 0;

   }

 

   std::sort(arr.begin(), arr.end(), [](int a, int b){ return abs(a) > abs(b); } );

 

   for(auto iter = arr.begin(); iter!= arr.end(); ++iter) sq_arr.push_back(*iter * *iter);

 

   for(size_t i = 0, l = sq_arr.size() - 2; i < l; ++i)

   {

       size_t j = i+1;

       int half = sq_arr[i] / 2;

       

       while( j < l+1 && sq_arr[j] >= half)

       {

           size_t k = j+1;

           int a = sq_arr[j] + sq_arr[k];

 

           while( k < l+2 && a >= sq_arr[i] )

           {

               if(a == sq_arr[i])

               {

                   results.push_back( PifaThree(arr[i], arr[j], arr[k]) );

               }

 

               ++k;

               a = sq_arr[j] + sq_arr[k];  

           }

 

           ++j;

       }  

   }

 

 

   std::cout << "\n\n";

   for(auto iter = arr.begin(); iter!= arr.end(); ++iter) std::cout << " " << *iter;

   /*

   std::cout << "\n";

   for(auto iter = sq_arr.begin(); iter!= sq_arr.end(); ++iter) std::cout << " " << *iter;

   */

   std::cout << "\n\n";

   for(auto iter = results.begin(); iter!= results.end(); ++iter)

   {

       iter->show();

       std::cout << "\n";

   }

 

   system("pause");

   return 0;

}

4,7(79 оценок)
Открыть все ответы
Ответ:
alinayusupova305
alinayusupova305
20.04.2022

1. 3) забота

2. 1) любовь

3.

2 страницы * 32 строки = 64 строки

64 строки * 64 кол-во символов в одной строке = 4096 символов

4096 символов * 16 бит = 65 536 бит

65 536 бит = 8 КБ

4.

По условию один символ кодируется 16 битами.

16 бит = 2 байта

Количество символов в тексте, который написал Вова, равно 99.

99 * 2 байта = 198 байт используется для кодирования всего предложения.

Новое предложение должно кодироваться 180 байтами (198-18).

Слово "пингвин" содержит 7 символов. Запятая и пробел - плюс два символа. Получилось 9 символов. 9 символов * 2 байта = 18 байт

Вычеркнутое слово — пингвин

4,4(26 оценок)
Ответ:
Диана05005
Диана05005
20.04.2022

1) 165

2) 58

3) 8

1) цикл сработает 11 раз = > решаем через прогрессию

s = (a1 + an ) / 2 * n = (0 + 30) / 2 * 11 = 165 (или можно тупо посчитать по итерациям)

2) на нужно чтобы n = 150 => посчитаем сколько раз должен выполниться цикл (150 - 3) / 7 = 21

1200 / 21 = 57.14 округляем в большую сторону

3) У тебя строка из 193 восьмерок (8) программа 888 на 2 и 222 на 8 => 888 888 888 на 8 => 193 / 9 = 21 и еще 4 восьмерки => 25 дальше снова / 9  = 2 + 7 = 9 восьмерок которые заменяются на одну 8

4,7(12 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ