|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.06.2011, 17:43 | #1 |
Регистрация: 10.06.2011
Сообщений: 4
|
Задача
Здравствуйте, форумчане))
Я только начинаю изучать C#, поэтому прошу помощи)) У меня есть задача, она казалась бы простая, но.... Условие: Пифагоровы числа - это тройка натуральных чисел a, b, c, такая, что a^2 + b^2 = c^2. Известно, что a, b, c - пифагоровы числа, a < b < c и a + b + c = 11000. Чему равно минимальное произведение a*b*c? Вот такой у меня получился код: Код HTML:
using System; class Program { static void Main(string[] args) { long d = 0; for (int a = 1; a < 11000; a++) { for (int b = 1; b < 11000; b++) { for (int c = 1; c < 11000; c++) { if ((a + b + c == 11000)&&(a*a+b*b==c*c)) { d = a * b * c; Console.WriteLine(d); goto end; } } } } end: Console.ReadKey(); } } В чем проблема? Последний раз редактировалось Holy_Melan; 10.06.2011 в 17:46. |
10.06.2011, 17:54 | #2 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Может, таких чисел и нет?
Кстати, у Вас не учтено условие a < b < c, и выбор минимального d. |
10.06.2011, 18:34 | #3 |
Регистрация: 10.06.2011
Сообщений: 4
|
ds.Dante,
Спасибо за ответ)) Возможно это неправильно, но предполагается, что первое полученное d и будет минимальным... Если оно находиться, программа выходит из цикла. А вот a<b<c я действительно не учла... Подумаю еще... |
10.06.2011, 18:48 | #4 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
Знаете почему программа ничего не выводит? Да потому, что число случаев в этой задаче порядка 1000000000000(ну или что-то около того). Проверять столько случаев очень долго, особенно используя консольное приложение.
|
10.06.2011, 18:50 | #5 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> Искомое число не появляется
вобще-то 1'331'000'000'000 итераций цикла — это часа на 3-4 расчётов..
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
10.06.2011, 18:54 | #6 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
veniside
если пользовать алгоритм с 1 поста, то вы правы насчёт кол-ва итераций. но если так Код:
|
10.06.2011, 18:54 | #7 |
Регистрация: 10.06.2011
Сообщений: 4
|
_-Re@l-_, veniside, спасибо))
Значит это куда сложнее, чем я думала...) |
10.06.2011, 19:09 | #8 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
да вроде ниче сложного, надо просто подумать, что если a и b известны, то крутить цикл по с — пустая трата ресурсов:
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 10.06.2011 в 19:19. |
11.06.2011, 20:41 | #9 |
Регистрация: 10.06.2011
Сообщений: 4
|
veniside, спасибо))
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача минимизации дисбаланса на линии сборки (задача минимакса) | LenZab | Microsoft Office Excel | 13 | 13.03.2011 22:51 |
Задача C | ProgramerBeatz | Общие вопросы C/C++ | 6 | 08.06.2009 01:31 |