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

Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.86
Irinash
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 4
27.03.2012, 13:10     Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел? #1
Подскажите как правильно составить программу к этим задачам:
1.Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов
натуральных чисел? Если можно, то указать тройку x, y, z таких натуральных чисел,
что n=x2+y2+z2 .
2.Переменной t присвоить значение 1 или 0 в зависимости от того, можно или нет
натуральное число n представить в виде трех полных квадратов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2012, 13:10     Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел?
Посмотрите здесь:

Среди чисел найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел C++
Среди чисел найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел C++
Можно ли представить данное число в виде произведения трех последовательных натуральных чисел C++
Можно ли заданное натуральное число М представить в виде суммы квадратов двух натуральных чисел? C++
C++ Даны натуральное число n. Среди чисел 1, 2, …, n найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел.
Даны натуральное число n. Среди чисел 1, 2, …, n найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел C++
Вывести наименьшее натуральное число, которое можно представить двумя разными способами в виде суммы кубов двух натуральных чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
27.03.2012, 13:18     Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел? #2
Без потери общности можно считать, что x <= y <= z
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
flag = 0;
for(x=1; x*x < n; x++) {
  if (flag) break;
 for(y=x; y*y < n; y++) {
  if (flag) break;
  for(z=y; z*z<n; z++) {
    if (flag) break;
    if (x*x+y*y+z*z == n) {
      printf("x=%d y=%d z=%d\n", x, y, z);
      flag = 1;
    }
   }
  }
}
if (flag==0) printf("No\n");
Проврерь внимательно, мог запутаться в скобках
ValeryS
Модератор
6403 / 4869 / 447
Регистрация: 14.02.2011
Сообщений: 16,159
29.03.2012, 22:19     Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел? #3
Цитата Сообщение от Irinash Посмотреть сообщение
Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов
натуральных чисел? Если можно, то указать тройку x, y, z таких натуральных чисел,
что n=x2+y2+z2 .
без математики тупой перебор
т.е тройной цикл
Цитата Сообщение от Irinash Посмотреть сообщение
Переменной t присвоить значение 1 или 0 в зависимости от того, можно или нет
натуральное число n представить в виде трех полных квадратов.
идем из первой задачи
bool t=(n==(x*x+y*y+z*z)

Добавлено через 3 минуты
C
1
2
3
4
5
for(x=0;x<n;x++)
 for(y=0;y<n;y++)
    for(z=0;z<n;z++)
       if(t=(n==(x*x+y*y+z*z))
             break;
Irinash
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 4
29.03.2012, 22:21  [ТС]     Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел? #4
Спасибо огромное, но мне это практически ни о чем не говорит(((если бы вы мне написали саму программу, я бы была вам очень признательна!!!
ValeryS
Модератор
6403 / 4869 / 447
Регистрация: 14.02.2011
Сообщений: 16,159
29.03.2012, 22:37     Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел? #5
Цитата Сообщение от Irinash Посмотреть сообщение
пасибо огромное, но мне это практически ни о чем не говорит(((если бы вы мне написали саму программу, я бы была вам очень признательна!!!
а я что написал???
разве что Main не вставил
еще раз
тупо перебираем x, y, z

Цитата Сообщение от ValeryS Посмотреть сообщение
for(x=0;x<n;x++)
for(y=0;y<n;y++)
for(z=0;z<n;z++)
если их квадраты равны n то присваиваем t 1
и выходим из циклов
Цитата Сообщение от ValeryS Посмотреть сообщение
if(t=(n==(x*x+y*y+z*z))
break;
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
29.03.2012, 22:51     Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел? #6
Цитата Сообщение от ValeryS Посмотреть сообщение
без математики тупой перебор
т.е тройной цикл

идем из первой задачи
bool t=(n==(x*x+y*y+z*z)

Добавлено через 3 минуты
C
1
2
3
4
5
for(x=0;x<n;x++)
 for(y=0;y<n;y++)
    for(z=0;z<n;z++)
       if(t=(n==(x*x+y*y+z*z))
             break;
Можно двумя циклами
C
1
2
3
4
5
6
for(x=0;x<n;x++)
 for(y=0;y<n;y++){
   z=sqrt(n*n-x*x-y*y);
   if (abs(n-(int)(z+EPS))<EPS)
         break;
}
ValeryS
Модератор
6403 / 4869 / 447
Регистрация: 14.02.2011
Сообщений: 16,159
29.03.2012, 22:55     Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел? #7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Можно двумя циклами

C
1
2
3
4
5
for(x=0;x<n;x++)
for(y=0;y<n;y++){
z=sqrt(n*n-x*x-y*y);
if (abs(n-(int)(z+EPS))<EPS)
break;
}
и че думаешь это более понятно?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2012, 00:00     Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел?
Еще ссылки по теме:

Определить, можно ли представить число в виде суммы двух квадратов натуральных чисел C++
C++ Натуральное число n представить в виде суммы трех полных квадратов
Определить, можно ли представить число N в виде суммы кубов трех натуральных чисел C++
Найти все числа, которые можно представить в виде суммы квадратов двух натуральных чисел C++
C++ Определить, можно ли число представить в виде суммы квадратов трех натуральных чисел

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
30.03.2012, 00:00     Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел? #8
Цитата Сообщение от ValeryS Посмотреть сообщение
и че думаешь это более понятно?
Это быстрее, так как переборов меньше,
Правда я не уверен, не убивает ли sqrt выигранную скорость.
Yandex
Объявления
30.03.2012, 00:00     Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел?
Ответ Создать тему
Опции темы

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