10 / 7 / 3
Регистрация: 14.12.2018
Сообщений: 82
1

Как повернуть рекурсию?

04.04.2019, 15:06. Показов 1297. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, есть условие:
нужно создать рекурсивную подпрограмму, которая будет рисовать пирамиду из введенного символа.
То есть, символ *, и рисуется пирамида:
*
**
***
****
*****

Долго перестраивал и пришел к решению, вот только по законам рекурсии, мне выводит обратный результат.
Вместо пирамиды выше в консоль выводится:
*****
****
***
**
*

Вот код:
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
#include <iostream> // standart input-output functions.
#include <iomanip>
 
using namespace std;
int count = 1;
void PIRAMIDKA(int N, char S)
{
    if(N == 1) cout << S;
    else
    {
        for(int i = 0; i < N; i++)
        {
            cout << S;
        }
        cout << endl;
        PIRAMIDKA(N - 1, S);
    }
}
int main()
{
    system("color F"); // changing text-color in console.
    setlocale(LC_ALL, "RUS");
    
    int N;
    char symbol;
    cout << "> Введите количество строк: "; cin >> N;
        cout << "> Введите символ для построения пирамиды: "; cin >> symbol;
        PIRAMIDKA(N, symbol);
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2019, 15:06
Ответы с готовыми решениями:

Переделать рекурсию по аргументу в рекурсию по значению
эта рекурсия по аргументу, заменяющая Y на число, равное глубине вложения Y в список List,...

Как повернуть TImage
Как повернуть TImage?

Как повернуть треугольник?
Gl.glBegin(Gl.GL_TRIANGLES); Gl.glVertex2f(X1, Y1); ...

Как повернуть вектор?
Есть 2 вектора выходящих из начала координат и заданных косинусами вращения: A=(-1, 0, 0) и...

6
145 / 89 / 23
Регистрация: 31.08.2016
Сообщений: 780
Записей в блоге: 2
04.04.2019, 15:18 2
упс
1
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
04.04.2019, 15:21 3
Лучший ответ Сообщение было отмечено adextrometh как решение

Решение

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
#include <iostream> // standart input-output functions.
#include <iomanip>
 
using namespace std;
int count = 1;
void PIRAMIDKA(int N, char S)
{
    if(N != 1)PIRAMIDKA(N-1,S);
    else {
        cout << S << "\n";
        return;
    }
    for(int i = 0;i<N;++i)cout << S;
    cout << "\n";
}
int main()
{
    system("color F"); // changing text-color in console.
    setlocale(LC_ALL, "RUS");
    
    int N;
    char symbol;
    //cout << "> Введите количество строк: "; 
    cin >> N;
    //  cout << "> Введите символ для построения пирамиды: "; 
    cin >> symbol;
        PIRAMIDKA(N, symbol);
    return 0;
}
1
1375 / 519 / 72
Регистрация: 21.07.2015
Сообщений: 1,304
04.04.2019, 15:43 4
Цитата Сообщение от adextrometh Посмотреть сообщение
cout << S;
добавь endl
Цитата Сообщение от adextrometh Посмотреть сообщение
PIRAMIDKA(N - 1, S);
перенеси в начало else
0
10 / 7 / 3
Регистрация: 14.12.2018
Сообщений: 82
04.04.2019, 16:26  [ТС] 5
shmkv, спасибо, не помогло.

LegionK, да, безупречно, благодарю.
0
1375 / 519 / 72
Регистрация: 21.07.2015
Сообщений: 1,304
04.04.2019, 16:43 6
Цитата Сообщение от adextrometh Посмотреть сообщение
shmkv, спасибо, не помогло.
Да неужели?
https://ideone.com/TPYHxd
1
10 / 7 / 3
Регистрация: 14.12.2018
Сообщений: 82
04.04.2019, 17:27  [ТС] 7
shmkv, почему-то отобразились пустые строки в консоли в первый раз.
Сейчас все хорошо, спасибо, + дал.
0
04.04.2019, 17:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2019, 17:27
Помогаю со студенческими работами здесь

Как повернуть эллипс
Нашёл формулки эллипса. x:=x0+R*Cos(a) y:=y0+R*Sin(a) x0, y0, R: integer; a: real; Как...

Как повернуть картинку?
Как повернуть картинку в Delphi?

Как повернуть label на 90°?
Здравствуйте, подскажите пожалуйста как повернуть label на 90° или как писать текст вертикально в...

Как повернуть матрицу?
как повернуть матрицу (НЕ КВАДРАТНУЮ) на 180 и на 270 градусов в mathad??


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru