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

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

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

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

02.01.2013, 11:50. Просмотров 509. Ответов 7
Метки нет (Все метки)

Даны натуральные числа n, a[1],...,a[n]. Определить количество
членов a[k] последовательности a[1],...,a[n], являющихся квадра-
тами четных чисел. Не используя функций
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2013, 11:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не используя функций определить члены последовательности, являющиеся квадратами четных чисел (C++):

Определить количество членов последовательности, являющихся квадратами четных чисел - C++
Обьясните пожалуста как решить такую задачу: Даны целые положительные числа N, a1, ..., aN. Используя только элементарные...

Вывести элементы массива являющиеся квадратами четных чисел - C++
Элементы массива-целые числа, равномерно распределенные в интервале . Вывести на печать (в консоле) исходный массив и элементы массива, явл...

Имеется последовательность чисел содержащая n элементов определить количество четных чисел в последовательности. - C++
Имеется последовательность чисел содержащая n элементов определить количество четных чисел в последовательности.

Определить количество четных чисел последовательности - C++
Дана числовая последовательность целых чисел, содержащая N элементов. Определить: количество четных чисел;

В последовательности определить количество соседств двух положительных не четных чисел - C++
Помогите. Даны натуральное число n, действительные числа a1...an.В последовательности определить количество соседств двух положительных...

Заменить некоторые члены последовательности используя цикл for - C++
Даны натуральное число n, целые числа а1,а2,...,аn. Заменить все больше семи члены последовательности а1,а2,...,аn числом 7. Вычислить...

7
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
02.01.2013, 17:37 #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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<iostream>
#include <math.h>
using namespace std;
int main(){
setlocale(0,"rus");
int sz=0;
int cnt=0;
cout<<"Введите количество членов последовательности натуральных чисел ";
cin>>sz;
cout <<endl;
int* SeqSourc=new int[sz];
int* TmpBuff=new int[sz];
cout<<"Введите члены последовательности натуральных чисел "<<endl;
for(int i=0; i<sz; i++){
cout<<i+1<<" ";
cin>>SeqSourc[i];
cout <<endl;
if(SeqSourc[i]<=0){
cout<<"Ввод "<<i+1<<"-того члена отменен введите "<<i+1<<"-й член ";
i--;
continue;
}
}
cout<<"Введены члены последовательности натуральных чисел "<<endl;
for(int i=0; i<sz; i++){
cout<<i+1<<" "<<SeqSourc[i]<<endl;
}
cout<<"Из них чётные:"<<endl;
for(int i=0; i<sz; i++){
if(!(SeqSourc[i]%2)){//член должен быть по крайней мере четным
cout<<SeqSourc[i]<<endl;
if(sqrt((double)SeqSourc[i])==(int)(sqrt((double)SeqSourc[i])))TmpBuff[cnt++]=SeqSourc[i];
}
}
cout<<"Найдено "<<cnt<<" членов последовательности натуральных чисел являющиеся полными квадратами чётных чисел:"<<endl;чётных чисел:"<<endl;
for(int i=0; i<cnt; i++)cout<<TmpBuff[i]<<"  ";
cout <<endl;
system ("pause");
return 0;
}


Добавлено через 7 минут
Цитата Сообщение от IGPIGP Посмотреть сообщение
C++
1
cout<<"Найдено "<<cnt<<" членов последовательности натуральных чисел являющиеся полными квадратами чётных чисел:"<<endl;чётных чисел:"<<endl;
Неправильно в последний момент скопипастилось. Хотелось как лучше, а вышло как всегда. Нужно:
C++
1
cout<<"Найдено "<<cnt<<" членов последовательности натуральных чисел являющиеся полными квадратами чётных чисел:"<<endl;
0
booker
23 / 23 / 2
Регистрация: 21.11.2012
Сообщений: 106
02.01.2013, 17:39 #3
Цитата Сообщение от BITalik Посмотреть сообщение
Не используя функций
это как?

int main() уже функция
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
02.01.2013, 17:53 #4
Цитата Сообщение от booker Посмотреть сообщение
это как?
int main() уже функция
Да, если строго, то совсем без функций, - никак. Без пользовательских наверное, имеется ввиду.
Даже если батник написать, будет вызывать команды командного процессора, API-функции... Нет, совсем без функции, - только на кубиках получится.
0
booker
23 / 23 / 2
Регистрация: 21.11.2012
Сообщений: 106
02.01.2013, 18:25 #5
наверное BITalikу нужна формула

Добавлено через 24 минуты
а так
берём корень из a[k]
проверяем на четность
если sqrt(a[k]) нечётное то n = sqrt(a[k])-1
если sqrt(a[k]) чётное то n = sqrt(a[k])

потом цикл

C++
1
2
3
4
5
6
7
while(n>3)
{
n=n-2;
count++;
}
 
cout<<count;
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
02.01.2013, 19:16 #6
А очевидное банальное решение никому в голову не приходит?
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
33
#include <iostream>
 
int main()
{
    int n;
    unsigned *nums;
 
    std::cin >> n;
    nums = new unsigned[n];
 
    unsigned max = 0;
    for (int i = 0; i < n; i++) {
        std::cin >> nums[i];
        if (nums[i] > max) {
            max = nums[i];
        }
    }
 
    unsigned count = 0;
    // num * num может вызвать переполнение, ну да ладно
    for (unsigned num = 0; num * num < max; num += 2) {
        for (int i = 0; i < n; i++) {
            if (nums[i] == num * num) {
                count++;
            }
        }
    }
 
    std::cout << count;
 
    delete [] nums;
    return 0;
}
C вычислением корня, за один проход:
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
33
34
35
36
37
38
#include <iostream>
 
int main()
{
    int n;
    unsigned *nums;
 
    std::cin >> n;
    nums = new unsigned[n];
    for (int i = 0; i < n; i++) {
        std::cin >> nums[i];
    }
 
    unsigned count = 0;
    for (int i = 0; i < n; ++i) {
        unsigned num   = nums[i];
        unsigned mover = 0x40000000;
        unsigned root  = 0;
        unsigned block;
        while (mover) {
            block = root | mover;
            root >>= 1;
            if (num >= block) {
                num -= block;
                root |= mover;
            }
            mover >>= 2;
        }
        if (root % 2 == 0 && (root * root) == nums[i]) {
            count++;
        }
    }
 
    std::cout << count;
 
    delete [] nums;
    return 0;
}
1
Catstail
Модератор
22833 / 11199 / 1812
Регистрация: 12.02.2012
Сообщений: 18,437
02.01.2013, 19:28 #7
Цитата Сообщение от BITalik Посмотреть сообщение
Не используя функций
- интересно, какой методический смысл в подобных задачах?
0
booker
23 / 23 / 2
Регистрация: 21.11.2012
Сообщений: 106
02.01.2013, 20:30 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main(){
    int k;
    cin>>k;
    k=static_cast<int> (sqrt((double)k))/2;
    cout<<k;
    system("pause");
    return 0;
}
с функциями
0
02.01.2013, 20:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2013, 20:30
Привет! Вот еще темы с ответами:

Определить каких чисел в целочисленной последовательности больше:четных или кратных 3 - C++
Пожалуйста,помогите написать программу в С++.Только начали изучать,не поняла как реализовать эту прогу в нем((( Определить каких чисел...

Найти элементы массива, являющиеся квадратами некоторого числа - C++
Даны целые положительные числа а1, а2 ..., аn. Найти среди них те, которые являются квадратами некоторого числа т. Заранее спасибо.

Требуется вывести n чисел — искомые члены последовательности Фибоначчи - C++
Последовательность Фибоначчи образуется следующим образом: первый и второй члены последовательности равны 1, а каждый следующий равен сумме...

Вводится последовательность целых чисел,0 –конец последовательности. Определить, содержит ли последовательность хотя бы три отрицательных четных числа - C++
Составить алгоритм решения задачи и написать программу на языке С++. В алгоритме и программе массивов не использовать. ...


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

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

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