Форум программистов, компьютерный форум CyberForum.ru

для людей понимающих в циклах - C++

Восстановить пароль Регистрация
 
mexxantom
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 47
19.02.2011, 02:35     для людей понимающих в циклах #1
есть задача и код на паскале (тока он какой та левый) помогите нужен код на си/си++ или хотя бы алгоритм решения! зарание спасибо

Составить программу-генератор чисел Пифагора a, b, c (c^2 = a^2 + b^2). В основу положить формулы: a = m^2 – n^2, b = 2mn, c = m^2 + n^2 (m, n – натуральные, 1 < m < k, 1 < n < k, k – данное число). Результат вывести на экран в виде таблицы из пяти столбцов: m, n, a, b, c.


Код:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
 
Сonst k=100000;
 
var i, j:integer;
b, a, c:Int64;
 
begin
for i:=1 to k do
for j:=i to k do//for j:=1 to k do
begin
a:=(i*i)-(j*j);
b:=2*i*j;
c:=(i*i) + (j*j);
if (a*a=((b*b)+(c*c))){and(a>0)and(b>0)and(c>0)} then
begin
writeln('m=', i, ', n=', j, ', A=', a, ', B=', b, ', C=', c, ' ', a, '^2=', b, '^2+', c, '^2');
end;
end;
writeln('Complite');
readln;
end.
для k меньше 10000 ни нашлось ни чего. а для 100000 уж больно долго считал, но коечто нашел. Еще обрати внимание на закоментированную часть в условии

for j:=i to k do//for j:=1 to k do
поясню: если нам все равно m=1 и n=2 или m=2 и n=1 (и втом и в другом случае результат для вычисления a,b,c одинаковый), используем первый вариант, если разница есть (a=m^n и т.п.) то второй. Первый работает быстрее.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2011, 02:35     для людей понимающих в циклах
Посмотрите здесь:

непонятная для меня ошибка прошу объяснить знающих людей C++
C++ Переменные в циклах
C++ Обьявление переменных в циклах и до
RANDOM в циклах C++
задачи о вложенных циклах C++
Ошибка в циклах C++
Задачи по циклах C++
Запутался в циклах C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
19.02.2011, 15:35     для людей понимающих в циклах #2
mexxantom, таблицу нарисуешь сам.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
using namespace  std;
 
const int k = 100;
 
int main(int argc, char* argv[])
{
    int a, b, c;
    for (int m = 1; m < k; m++)
    {
        for (int n = 1; n < k; n++)
        {
            if (m > n)
            {
                a = m*m-n*n;
                b = 2*m*n;
                c = m*m+n*n;
                if (c > 100)
                {
                    break;
                }
                if (c*c == a*a + b*b)
                {
                    cout << a << "  " << b << "  " << c << endl;
                }
            }
        }
    }
 
    system("PAUSE");
    return 0;
}
mexxantom
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 47
21.02.2011, 01:55  [ТС]     для людей понимающих в циклах #3
спасибо большое
Yandex
Объявления
21.02.2011, 01:55     для людей понимающих в циклах
Ответ Создать тему
Опции темы

Текущее время: 11:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru