Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 03.11.2017
Сообщений: 3
1

Является ли введенная последовательность правильным чередованием двух чисел

03.11.2017, 16:30. Показов 881. Ответов 2
Метки нет (Все метки)

Является ли введенная последовательность правильным чередованием двух чисел. Например, последовательности 1, 0, 1, 0, 1, 0 и 3, 4, 3, 4 являются правильными, а 3, 4, 4, 3 и 3, 4, 3, 5 - нет. C++
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2017, 16:30
Ответы с готовыми решениями:

Проверить, является ли введенная последовательность чисел рядом Фибоначчи
Здравствуйте! Закопался тут с одной задачей - требуется написать программу проверяющую является ли...

Является ли введенная последовательность возрастающей
#include <stdio.h> #include <conio.h> #include <iostream> void main() { int A1; int A2;...

Последовательность символов является правильным изображением целого 10-ного числа
Задача 3. Вводится последовательность символов, которая завершается символом точка. Определить...

Определить, является ли введенная последовательность знакочередующейся
Вводится последовательность из N вещественность чисел. Определить,является ли последовательность...

2
27 / 27 / 16
Регистрация: 22.08.2017
Сообщений: 126
03.11.2017, 17:32 2
Лучший ответ Сообщение было отмечено smotrus как решение

Решение

Вот что получилось:

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Example program
#include <iostream>
 
using namespace std;
 
typedef unsigned int my_type_count;
typedef int my_type_data;
 
bool fun_check(my_type_data* data,my_type_count count){
    
bool ret=true;    
 
if(count<2){
ret=false;    
}//if
else{
 
my_type_data data0=data[0];
my_type_data data1=data[1];
    
my_type_count i;    
for(i=0;i!=count;++i){
 
if((i&1)==0){
if(data[i]!=data0){ret=false; break;}
}//if
else{
if(data[i]!=data1){ret=false; break;}
}//else
    
}//for    
 
}//else
 
return ret;
}
 
int main(){
    
my_type_data data1[]={1, 0, 1, 0, 1, 0};    
my_type_data data2[]={3, 4, 3, 4};    
my_type_data data3[]={3, 4, 4, 3};    
my_type_data data4[]={3, 4, 3, 5};    
 
my_type_data data5[]={10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1};    
my_type_data data6[]={10};    
my_type_data data7[]={10,5};    
my_type_data data8[]={};    
 
cout<<endl<<"check1="<<fun_check(data1,sizeof(data1)/sizeof(my_type_data));
cout<<endl<<"check2="<<fun_check(data2,sizeof(data2)/sizeof(my_type_data));
cout<<endl<<"check3="<<fun_check(data3,sizeof(data3)/sizeof(my_type_data));
cout<<endl<<"check4="<<fun_check(data4,sizeof(data4)/sizeof(my_type_data));
 
cout<<endl<<"check5="<<fun_check(data5,sizeof(data5)/sizeof(my_type_data));
cout<<endl<<"check6="<<fun_check(data6,sizeof(data6)/sizeof(my_type_data));
cout<<endl<<"check7="<<fun_check(data7,sizeof(data7)/sizeof(my_type_data));
cout<<endl<<"check8="<<fun_check(data8,sizeof(data8)/sizeof(my_type_data));
 
return 0;
}
Пример вывода:

check1=1
check2=1
check3=0
check4=0
check5=1
check6=0
check7=1
check8=0
Проверялось на http://cpp.sh/
1
824 / 627 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
03.11.2017, 18:07 3
Вариант-1: Проверка массива
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
bool is_altern(const int a[], int n){
    if(n <= 1 || (n & 1))
        return false;
 
    for(int i = 2; i < n; ++i){
        if(a[i] != a[i & 1])
            return false;
    }
    return (n == 2) ? (a[0] != a[1]) : true;
}
 
int main(void){
    int a[] = { 3, 4, 3, 4 };
    
    if(is_altern(a, sizeof(a)/sizeof(a[0])))
        std::cout << "Yes.";
    else
        std::cout << "No!";
    std::cin.get();
    return 0;
}
Вариант-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
#include <iostream>
 
int main(void){
    const int M = 2;
    int v, n, vs[M];
    std::cout << "Enter N: ";
    std::cin  >> n;
    std::cout << "> ";
 
    bool g = true;
    for(int i = 0; i < n; ++i){
        if(!(std::cin >> v))
            break;
 
        if(i < M){
            vs[i] = v;
            if(i == 1 && vs[0] == vs[1])
                g = false;
        } else if(v != vs[i & 1])
            g = false;
    }
 
    if(g && !(n & 1))
        std::cout << "Yes.";
    else
        std::cout << "No!";
    std::cout << std::endl;
 
    std::cin.sync();
    std::cin.get();
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2017, 18:07

Определить, является ли введенная последовательность возрастающей
Есть задачка: Вводится последовательность из семи чисел или букв. Программа определяет, является...

Определить, является ли введенная последовательность убывающей
Ввести N чисел. Определить, является ли введенная последовательность убывающей. Пытался, пытался,...

Проверить является ли введенная последовательность возрастающей
/* является ли введенная последовательность возрастающей(не считая 0) */ bool...

Определить, является ли введенная последовательность геометрической
Задача, нужен код и алгоритм (по возможности) С клавиатуры вводятся вещественные числа признаком...

Определить является ли введенная последовательность геометрической прогрессией
С клавиатуры вводится последовательность целых чисел, признаком конца ввода является 0, определить...

Определить, является ли введенная последовательность геометрической прогрессией
С клавиатуры вводится последовательность целых чисел, признаком конца ввода является 0, определить...


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

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

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