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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mexxantom
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 47
#1

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

19.02.2011, 02:35. Просмотров 448. Ответов 2
Метки нет (Все метки)

есть задача и код на паскале (тока он какой та левый) помогите нужен код на си/си++ или хотя бы алгоритм решения! зарание спасибо

Составить программу-генератор чисел Пифагора 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++
я понимаю как работает переменная i первом цикле, но во втором не пойму. Переменная i объявлена, но не проинициализирована. Какое значение...

Ошибка в циклах - C++
В примере есть 2 цикла(один в другом). Ссылка: http://ideone.com/lnxyf. Там получилось так, что ввод данных просто пропускается. Почему?

Задачи по циклах - C++
1)Написать функцию, которая по целым числом определяет старшую цифру его десятичной записи. С++; ...

Break в циклах - C++
Такая проблема: занимаюсь по книге Эллайна, и в ней заговорилось о break и его использовании в циклах. Я, дабы проверить эту зверюгу на...

RANDOM в циклах - C++
Вот программка выдающая 10 клонов случайного числа от 0 до 9, что в ней надо изменить, чтобы все числа были рандомные, то есть разные?...

задачи о вложенных циклах - C++
1)Дана матрица А(m,n). Перемножить элементы с четной суммой индексов I+J. Найти максимальные элементы каждого столбца матрицы. 2)Даны...

Обьявление переменных в циклах и до - C++
Возник вопрос почему? Без обьявления int x = 1; до цикла возникает ошибка при компиляции программы ... Хотя в книжке обьявление типа и...

Для каждого теста в отдельной строке вывести число людей, носящих белые шляпы или -1 - C++
Белые шляпы В комнате находится несколько людей. На каждом одета белая или черная шляпа. Каждый человек подсчитывает количество белых...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
спасибо большое
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru