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

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

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

Массив целых чисел. Рассмотреть отрезки последовательности, состоящие из степеней пятерки - C++

18.11.2013, 22:24. Просмотров 718. Ответов 5
Метки нет (Все метки)

Добрый день, у меня вот есть код на паскале, нужно перевести на с++. Не очень понятно, что там в функции выходит, и какие параметры мы передаем..

Условие: Даны натуральное число n, целые числа a1,…an. Рассмотреть отрезки последовательности a1,…an (подпоследовательности идущих подряд членов), состоящие из степени пятёрки. В каждом случае получить наибольшую из длин рассматриваемых отрезков (определить процедуры, позволяющие распознавать степени пятерки).


Код на паскале:
Pascal
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
Var A:array[1..100] of integer;
    i,n,k,max:byte;
Function F(n:integer):boolean;
Var pr:integer;
Begin
    pr:=1;
    While pr<n do
     pr:=pr*5;
    F:=(n=pr)and(n<>1);
End;
Begin
    write('Введите n: ');readln(n);
    For i:=1 to n do
    Begin
      write('A[',i,'] = ');
      readln(A[i]);
    End;
    max:=0;k:=0;
    For i:=1 to n do
    Begin
      if F(A[i]) then inc(k) 
      else
      Begin
        if k>max then max:=k;
        k:=0;
      end;
    End;
    if k>max then max:=k;
    if max>0 then writeln('Max последовательность из степеней 5-ки = ',max)
     else writeln('Нету степеней 5-ки');
    readln;
End.
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>
#include <ctype.h>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
int f() {
    ??
}
 
int main()
{
    srand(time(0)); 
 
int f(int, int);
 
int n,i,max=0,k=0;
cout<<"n="; cin>>n;
 
for(i=0;i<n;i++)
a[i]=rand()%100;
 
 
for(i=0;i<n;i++) {
if (f(a[i])) k++;
else
if (k>max) { max=k; k=0; }
}
 
if (k>max) max=k;
if (max>0) cout<<"max posledovatel`nost` iz stepenei 5:"<<max;
else cout<<"net stepenei";
 
system("PAUSE");
 
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2013, 22:24     Массив целых чисел. Рассмотреть отрезки последовательности, состоящие из степеней пятерки
Посмотрите здесь:

Рассмотреть отрезки последовательности,состоящие из одинаковых чисел - C++
Доброе утро форум беда пришла не одна.:cry: Не знаю как бороться с этим :-| 2. Дан массив целых чисел. Рассмотреть отрезки...

Найти количество чисел последовательности, которые являются степенями пятерки - C++
Даны натурального число n и целые числа A1,A2,A3...An. Найти количество чисел Ai(i=1,2,3,...,n), являющихся степенями пятерки.( Определить...

Вывод целых чисел и их степеней - C++
Написать программу для вывода целых чисел, кубов этих целых чисел и пятой степени этих целых чисел. Программа запрашивает шаг и выводит...

Вычислить сумму степеней в последовательности чисел - C++
Помогите решить пожалуйста: Вводятся натуральные числа m, n и целые числа a1...an.Вычислить b1+...+bm, где: b1=a1+a2+...+an ; ...

Вычислить сумму чисел между k ым и n ым элементами последовательности степеней числа 3: 1392781… - C++
Даны натуральные числа k и n. Вычислить сумму чисел между k-ым и n-ым элементами последовательности степеней числа 3: 1392781…, но сами...

Re: Даны два множества М и N, состоящие из 10 целых чисел из диапазона 1.100. Из данных множеств выделить соот - C++
Даны два множества М и N, состоящие из 10 целых чисел из диапазона 1 ... 100. Из данных множеств выделить соответственно подмножества M1...

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

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

В последовательности целых чисел определить количество чётных чисел кратных 7 - C++
Напишите программу, которая в последовательности целых чисел определяет количество чётных чисел, кратных 7.

Определить сумму нечетных чисел числовой последовательности из n целых чисел, вводимых пользователем - C++
#include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; int main() { int n; cout &lt;&lt; &quot;Enter the number of...

Написать программу, которая в последовательности целых чисел определяет количество чётных чисел, кратных 7 - C++
Здравствуйте, помогите пожалуйста с написанием кода. Напишите программу, которая в последовательности целых чисел определяет...

Программа последовательности целых чисел - C++
Не могу написать программу для последовательности чисел. Вводится последовательность целых чисел, 0 - конец последовательности....


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Peregrin
33 / 33 / 1
Регистрация: 16.11.2012
Сообщений: 59
18.11.2013, 22:26     Массив целых чисел. Рассмотреть отрезки последовательности, состоящие из степеней пятерки #2
если переписывать код с паскаля, то:
C++
1
2
3
4
5
6
bool f(int n) {
   int pr = 1;
   while(pr < n) 
     pr *= 5;
    return (n==pr) && (n != 1);
}
Slowpok
4 / 4 / 0
Регистрация: 03.01.2012
Сообщений: 112
18.11.2013, 22:34  [ТС]     Массив целых чисел. Рассмотреть отрезки последовательности, состоящие из степеней пятерки #3
Получается вот так, но меня смущает, что мы не передаем 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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <ctype.h>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
bool f(int n) {
   int pr = 1;
   while(pr < n) 
     pr *= 5;
    return (n==pr) && (n != 1);
}
 
int main()
{
    srand(time(0)); 
 
int n,i,max=0,k=0;
cout<<"n="; cin>>n;
int a[n];
for(i=0;i<n;i++)
a[i]=rand()%26;
 
 
for(i=0;i<n;i++) {
if (f(a[i])) k++;
else
if (k>max) { max=k; k=0; }
}
 
if (k>max) max=k;
if (max>0) cout<<"max posledovatel`nost` iz stepenei 5:"<<max<<endl;
else cout<<"net stepenei";
 
system("PAUSE");
 
return 0;
}
Peregrin
33 / 33 / 1
Регистрация: 16.11.2012
Сообщений: 59
18.11.2013, 22:41     Массив целых чисел. Рассмотреть отрезки последовательности, состоящие из степеней пятерки #4
Так в 27-ой строке ты вызываешь же f(a[i]).
Только у тебя программа сейчас не будет компилиться. Т.к. ты n вводишь с клавиатуры, то нужно делать вместо
C++
1
int a[n]
вот так:
C++
1
int a[] = new int[n];
, а в конце программы
C++
1
delete[] a;
Slowpok
4 / 4 / 0
Регистрация: 03.01.2012
Сообщений: 112
18.11.2013, 22:44  [ТС]     Массив целых чисел. Рассмотреть отрезки последовательности, состоящие из степеней пятерки #5
Peregrin, компилится, и даже работает) заменил на int a[] = new int[n];
ошибка: fails to determine size of `a'
Peregrin
33 / 33 / 1
Регистрация: 16.11.2012
Сообщений: 59
18.11.2013, 22:55     Массив целых чисел. Рассмотреть отрезки последовательности, состоящие из степеней пятерки #6
Slowpok, точнее вот так:
C++
1
int* a = new int[n];
А почему компилится просто int a[n]; для меня остаётся загадкой пока Оо
Yandex
Объявления
18.11.2013, 22:55     Массив целых чисел. Рассмотреть отрезки последовательности, состоящие из степеней пятерки
Ответ Создать тему
Опции темы

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