Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
1 / 1 / 0
Регистрация: 29.05.2018
Сообщений: 4

Проверить верно ли, что заданное число равно сумме квадратов двух целых чисел

29.05.2018, 09:30. Показов 5409. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приводится число натуральных N. Если он равен сумме квадратов двух целых чисел x и y, то N = x2 + y2, где x, y - функция, определяющая числа.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2018, 09:30
Ответы с готовыми решениями:

Проверить, равно ли число Sum сумме целых чисел, являющихся вершинами дерева TreeOfInteger
3. Определите отношение sum_tree(+TreeOfInteger, -Sum), выполненное, если число Sum равно сумме целых чисел, являющихся вершинами дерева...

Дан массив целых чисел. Верно ли, что сумма квадратов элементов массива есть пятизначное число
дан массив целых чисел. Верно ли, что сумма квадратов элементов массива есть пятизначное число.

Верно ли, что число N- совершенное, то есть равно сумме своих делителей, меньших его самого
"Напишите логическую функцию, которая определяет, верно ли, что число N- совершенное, то есть равно сумме своих делителей, меньших его...

11
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
07.07.2018, 18:52
Kamila0715, здравствуйте! Вот решение, если я все правильно понял:

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
#include <bits/stdc++.h>
 
    using namespace std;
 
int f(int x, int y) {
    return x * x + y * y;
}
 
int main() {
    int n, x, y;
    cout << "Enter a number:\n";
    cout << "n = ";
    cin >> n;
    cout << "Enter two more numbers:\n";
    cout << "x = ";
    cin >> x;
    cout << "y = ";
    cin >> y;
    cout << "Target info:\n";
    if (n == f(x, y)) {
        cout << "Yes, " << n << " is equal " << x << "^2 + " << y << "^2\n";
    } else {
        cout << "No, " << n << " is NOT equal " << x << "^2 + " << y << "^2\n";
    }
    system("pause");
    return 0;
}
0
483 / 275 / 57
Регистрация: 08.10.2015
Сообщений: 1,184
07.07.2018, 19:51
Все верно, но подозреваю, что это не то, что от Вас требовалось. Мне кажется, что нужно выяснить является ли данное целое число суммой квадратов 2-х целых чисел? И найти эти числа. Т.е. вводить надо только одно число!
Но может быть я и не прав. Формулировка задания не совсем четкая.
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
07.07.2018, 20:37
Цитата Сообщение от САлександр Посмотреть сообщение
Все верно, но подозреваю, что это не то, что от Вас требовалось.
Здравствуйте! Я тоже думал об этом, но в силу того, что был занят другой задачей, поленился обработать этот вариант. Вот еще код, на всякий случай:

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
#include <bits/stdc++.h>
 
    using namespace std;
 
int f(int x, int y) {
    return x * x + y * y;
}
 
int main() {
    int n, x, y;
    bool flag = false;
    cout << "Enter a number:\n";
    cout << "n = ";
    cin >> n;
    cout << "Target info:\n";
    for (int x = 0; x <= n; x++) {
        for (int y = 0; y <= n; y++) {
            if (n == f(x, y)) {
                cout << x * x << " + " << y * y << " = " << n << "\n";
                flag = true;
            }
        }
    }
    if (flag) {
        cout << "Yes!\n";
    } else {
        cout << "No!\n";
    }
    system("pause");
    return 0;
}
P.S. Но это решение в лоб и не самое оптимальное.
0
483 / 275 / 57
Регистрация: 08.10.2015
Сообщений: 1,184
07.07.2018, 21:56
Нормальное у Вас решение. Я чуть изменил - убрал в цикле x,y=0, более понятный вывод, ввел корень из n, это существенно для больших n.

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
int main()  
{
 int n, x, y, x1;
 bool flag = false;
 
  cout << "Enter a number:\n";
  cout << "n = ";
  cin >> n;
  cout << "Target info:\n";
  x1=sqrt(n);
  for(x = 1; x <= x1; x++)
     for(y = 1; y <= x1; y++)
        if (n == f1(x,y))
          {
           cout << x<<"^2" " + " << y<<"^2" " = " << n << "\n";
           flag = true;
          }
  if (flag)
  cout << "Yes!\n";
     else  cout << "No!\n";
 
  system("pause");
  return 0;
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
08.07.2018, 02:05
Цитата Сообщение от САлександр Посмотреть сообщение
убрал в цикле x,y=0,
и зачем убрал ? чтобы из рабочей программы сделать непонятно что ?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
08.07.2018, 10:50
Цитата Сообщение от САлександр Посмотреть сообщение
убрал в цикле x,y=0
Я слышал, что 0 - тоже целое число
Замечания "вредного оптимизатора"
1. a + b = b + a
2. Если уж нашли представление, совершенно незачем крутить цикл дальше
C++
1
2
3
4
5
6
7
8
9
10
for(x=0; (x2=x*x)<=N; x++) {
  for(y=x; (y2=y*y) <= N - x2; y++)
    if (x2+y2==N) {
       flag=true;
       break;
    }
  if (flag) break;
}
if (flag)  cout << "Yes!\n";
else  cout << "No!\n";
0
483 / 275 / 57
Регистрация: 08.10.2015
Сообщений: 1,184
08.07.2018, 16:28
Байт
0 можно и вернуть, но это особый случай, когда N является квадратом, а второе число 0.
Но вот насчет прекращения поиска - просто интересно найти все варианты, и их бывает много. Для полного решения задачи надо только "убрать" решения вида b+a, если уже есть решение a+b.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
08.07.2018, 22:12
Цитата Сообщение от САлександр Посмотреть сообщение
Но вот насчет прекращения поиска - просто интересно найти все варианты, и их бывает много
Ну что ж. Вы просто решаете другую задачу. Имеете полное право. Но об этом может быть следовало сообщить остальным участникам?
0
 Аватар для Babysitter
245 / 139 / 53
Регистрация: 23.11.2015
Сообщений: 394
08.07.2018, 22:25
вроде было что-то такое на кодварс когда-то.
решал так:

C++
1
2
3
4
bool is_square(int x) {
    auto root = ::sqrt(x);
    return x == root*root;
}
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
08.07.2018, 22:33
Babysitter, это определение - является ли число полным квадратом. К поставленной задаче если и имеет какое-то отношение, то очень отдаленное.
1
 Аватар для Babysitter
245 / 139 / 53
Регистрация: 23.11.2015
Сообщений: 394
08.07.2018, 22:56
Байт, как обычно начал отвечать не прочитав условие. действительно, абсолютно не по теме.

Добавлено через 21 минуту
а если попробовать использовать эту идею?

C++
1
2
3
4
5
6
7
8
bool is_square_sum(int x) {
    for (int i = 0; i < x/2 + 1; ++i) {
        if (is_square(i) && is_square(x - i)) {
            return true;
        }
    }
    return false;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.07.2018, 22:56
Помогаю со студенческими работами здесь

Проверить верно ли, что заданное число простое
1. Дано целое число N (&gt; 1). Если оно простое, то вывести сообщение: «Число N простое», иначе вывести сумму делителей. П.5.16.Правил ...

Числа Люка определяются так: первое число равно 1, второе равно 3, каждое следующее равно сумме двух предыдущих. Состави
Задание Числа Люка определяются так: первое число равно 1, второе равно 3, каждое следующее равно сумме двух предыдущих. Составить...

Число из большого количества цифр равно сумме двух чисел
Здравствуйте! Помогите пожалуйста с задачкой (очень сложная):help:: Вводится число A из n цифр (до 10000 цифр). Надо найти такие числа X...

Реализуйте:может ли заданное целое число быть представлено в виде суммы квадратов двух целых
/*Реализуйте метод, проверяющий, может ли заданное целое число быть представлено в виде суммы квадратов двух целых чисел.*/ Пока...

Заданное натуральное число M представить в виде суммы квадратов двух натуральных чисел.
Заданное натуральное число M представить в виде суммы квадратов двух натуральных чисел. Написать и протестировать функцию решения этой...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru