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

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

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

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

18.11.2013, 22:24. Просмотров 869. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2013, 22:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив целых чисел. Рассмотреть отрезки последовательности, состоящие из степеней пятерки (C++):

Рассмотреть отрезки последовательности,состоящие из одинаковых чисел - 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...

5
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);
}
2
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;
}
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;
1
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'
0
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]; для меня остаётся загадкой пока Оо
1
18.11.2013, 22:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2013, 22:55
Привет! Вот еще темы с ответами:

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

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

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

Определить в заданной последовательности целых чисел количество чисел Фибоначчи - C++
Выполнить задания, если задана последовательность целых чисел длиной n. Определить в заданной последовательности целых чисел количество...


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

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

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