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

Сумма квадратов 3-х чисел - C++

Восстановить пароль Регистрация
 
studlife
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 53
26.05.2014, 18:38     Сумма квадратов 3-х чисел #1
Дано натуральное N<=1000. Найти все тройки натуральных чисел a, b ,c (a<=b<=c), удовлетворяющих условию a^2+b^2+c^2 = N
Помогите, пожалуйста!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lawr
 Аватар для lawr
342 / 236 / 114
Регистрация: 09.05.2014
Сообщений: 723
28.05.2014, 16:55     Сумма квадратов 3-х чисел #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <math.h>
using namespace std;
void main()
{
    setlocale(LC_ALL, "Russian"); 
    int a, b, c, n, n1;
    cout<<"введите число\n";
    cin>>n;
    if (n>1000) return;
    cout<<"тройки чисел, сумма квадратов которых равна "<<n<<"\n";
    n1=sqrt(n);
    for (a=1; a<=n1; a++)
        for (b=a; b<=n1; b++)
            for (c=b; c<n1; c++)
                if (a*a+b*b+c*c==n) 
                    cout<<a<<" "<<b<<" "<<c<<"\n";
}
grikukan
61 / 61 / 21
Регистрация: 23.09.2012
Сообщений: 212
28.05.2014, 17:07     Сумма квадратов 3-х чисел #3
Ну на самом деле это можно еще чуть-чуть ускорить, так как c явно выражается через n, a и b
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include<cmath>
using namespace std;
int main()
{
    long n;
    cin>>n;
    for(int a=1;a<=(int)sqrt(n);a++)
    {
        for(int b=1;b<=(int)sqrt(n);b++)
        {
            int c=n-a*a-b*b;
            if(sqrt(c)==(int)sqrt(c) && c!=0) //проверим, что c - полный квадрат
            {
                cout<<a<<' '<<b<<' '<<sqrt(c)<<endl;
            }
 
        }
    }
}
Вот это работает за честную линию от n.
studlife
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 53
28.05.2014, 21:46  [ТС]     Сумма квадратов 3-х чисел #4
grikukan, есть еще вопрос: почему visual studio выдает ошибку на функцию sqrt?
lawr
 Аватар для lawr
342 / 236 / 114
Регистрация: 09.05.2014
Сообщений: 723
29.05.2014, 00:28     Сумма квадратов 3-х чисел #5
какой код ошибки?
Yandex
Объявления
29.05.2014, 00:28     Сумма квадратов 3-х чисел
Ответ Создать тему
Опции темы

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