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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
demorate
1 / 1 / 0
Регистрация: 06.03.2011
Сообщений: 34
#1

Определить количество членов последовательности, являющихся квадратами четных чисел - C++

11.09.2011, 16:17. Просмотров 1543. Ответов 9
Метки нет (Все метки)

Обьясните пожалуста как решить такую задачу:

Даны целые положительные числа N, a1, ..., aN. Используя только элементарные арифметические операции (+, –, *, /), определить количество членов последовательности a1, ..., aN, являющихся квадратами четных чисел. Массивы не использовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2011, 16:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить количество членов последовательности, являющихся квадратами четных чисел (C++):

Определить количество членов последовательности, являющихся нечётными. - C++
Дано целое число n, и действительные числа а1…аn. Определить количество членов последовательности, являющихся нечётными.

Определить количество членов последовательности являющихся чётными числами - C++
даны натуральные числа n a1...an определить количество членов последовательности являющихся четными числами это на С++

Определить количество членов последовательности, имеющих четные порядковые номера и являющихся нечетными - C++
Условие: Даны натуральные числа n, A1, A2,....An.Определить количество членов Ak последовптельности A1,...An: имеющих четные порядковые...

Определить количество членов последовательности имеющих четные порядковые номера и являющихся нечетными числам - C++
2. Даны натуральные числа N, a0,a1,….,a(N-1). Определить количество членов последовательности имеющих четные порядковые номера и...

Определить количество членов последовательности, имеющих четные порядковые номера и являющихся нечетными числами - C++
Даны натуральные числа n, A 1, A2 , ..., An . Определить количество членов Ak последовательности A1 , ..., An :имеющих четные ...

Не используя функций определить члены последовательности, являющиеся квадратами четных чисел - C++
Даны натуральные числа n, a,...,a. Определить количество членов a последовательности a,...,a, являющихся квадра- тами четных чисел....

9
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.09.2011, 17:10 #2
Вариант без делений:

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
#include<iostream.h>
 
int Check(long x)
{
   long y = 0, i = 0;
   if (x < 0)
      return 0;
   while(y < x)
      y += 8*(i++) + 4;
   return x == y;
}
 
int main()
{
   int i, n, a, count = 0;
   std::cout << "n = ";
   std::cin >> n;
   for (i = 0; i < n; i++)
   {
      std::cin >> a;
      if (Check(a))
         count++;
   }
   std::cout << "count = " << count;
   return 0;
}
1
demorate
1 / 1 / 0
Регистрация: 06.03.2011
Сообщений: 34
11.09.2011, 18:02  [ТС] #3
Цитата Сообщение от Thinker Посмотреть сообщение
Вариант без делений:

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
#include<iostream.h>
 
int Check(long x)
{
   long y = 0, i = 0;
   if (x < 0)
      return 0;
   while(y < x)
      y += 8*(i++) + 4;
   return x == y;
}
 
int main()
{
   int i, n, a, count = 0;
   std::cout << "n = ";
   std::cin >> n;
   for (i = 0; i < n; i++)
   {
      std::cin >> a;
      if (Check(a))
         count++;
   }
   std::cout << "count = " << count;
   return 0;
}
А не могли бы Вы сделать в цикле do-while
0
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.09.2011, 18:22 #4
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
#include<iostream.h>
 
int Check(long x)
{
   long y = 0, i = 0;
   if (x < 0)
      return 0;
   do
      y += 8*(i++) + 4;
   while(y < x);
   return x == y;
}
 
int main()
{
   int i, n, a, count = 0;
   std::cout << "n = ";
   std::cin >> n;
   for (i = 0; i < n; i++)
   {
      std::cin >> a;
      if (Check(a))
         count++;
   }
   std::cout << "count = " << count;
   return 0;
 
}
0
demorate
1 / 1 / 0
Регистрация: 06.03.2011
Сообщений: 34
11.09.2011, 18:25  [ТС] #5
Цитата Сообщение от Thinker Посмотреть сообщение
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
#include<iostream.h>
 
int Check(long x)
{
   long y = 0, i = 0;
   if (x < 0)
      return 0;
   do
      y += 8*(i++) + 4;
   while(y < x);
   return x == y;
}
 
int main()
{
   int i, n, a, count = 0;
   std::cout << "n = ";
   std::cin >> n;
   for (i = 0; i < n; i++)
   {
      std::cin >> a;
      if (Check(a))
         count++;
   }
   std::cout << "count = " << count;
   return 0;
 
}
А можете обьяснить, зачем это:
C++
1
2
3
4
5
6
7
8
9
10
int Check(long x)
{
   long y = 0, i = 0;
   if (x < 0)
      return 0;
   do
      y += 8*(i++) + 4;
   while(y < x);
   return x == y;
}
и можно ли его заменить?
0
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.09.2011, 19:12 #6
Цитата Сообщение от demorate Посмотреть сообщение
А можете обьяснить, зачем это:

и можно ли его заменить?
Проверка того, что число является точным квадратом четного числа.
Изменить можно легко, сделать с делениями.
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
11.09.2011, 19:39 #7
Цитата Сообщение от Thinker Посмотреть сообщение
Проверка того, что число является точным квадратом четного числа.
Изменить можно легко, сделать с делениями.
Вероятно ТС смутило объявление функции
0
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.09.2011, 19:45 #8
Цитата Сообщение от Dani Посмотреть сообщение
Вероятно ТС смутило объявление функции
Наверно Алгоритм не из лучших, просто как бы для интереса сделал без делений и остатков от делений.
0
demorate
1 / 1 / 0
Регистрация: 06.03.2011
Сообщений: 34
11.09.2011, 19:51  [ТС] #9
Цитата Сообщение от Thinker Посмотреть сообщение
Проверка того, что число является точным квадратом четного числа.
Изменить можно легко, сделать с делениями.
А не могли бы Вы сделать с делениями? Хотелось бы увидеть разницу.
0
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.09.2011, 20:23 #10
Цитата Сообщение от demorate Посмотреть сообщение
А не могли бы Вы сделать с делениями? Хотелось бы увидеть разницу.
Более оптимальный вариант:
C++
1
2
3
4
5
6
7
8
9
10
int Check(long x)
{
   long i = 1;
   if (x < 0 || x % 4)
      return 0;
   x /= 4;
   while(i*i < x)
      i++;
   return i*i == x;
}
1
11.09.2011, 20:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2011, 20:23
Привет! Вот еще темы с ответами:

Найти количество чисел, являющихся полными квадратами - C++
Даны натуральное число n и целые числа a1,a2,...,an. Найти количество чисел ai (i=1,2,...,n) являющихся полными квадратами. (Определить...

Найти количество чисел, являющихся полными квадратами - C++
Даны натуральное число n и целые числа a1,a2,...,an. Найти количество чисел ai (i=1,2,...,n) являющихся полными квадратами. (Определить...

Написать программу, которая находит заданное количество чисел, являющихся квадратами натуральных чисел, и выводит их на экран. Проверку "квадрат – не - C++
Написать программу, которая находит заданное количество чисел, являющихся квадратами натуральных чисел, и выводит их на экран. ...

Определить количество членов последовательности целых чисел - C++
Программа получает на вход последовательность целых неотрицательных чисел, каждое число записано в отдельной строке. Последовательность...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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