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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
crazygor1
6 / 6 / 1
Регистрация: 06.02.2010
Сообщений: 131
#1

Красная бактерия - C++

27.10.2011, 19:50. Просмотров 1971. Ответов 6
Метки нет (Все метки)

Доброго времени суток! Ребят помогите плизик с задачей:
Имеется n бактерий красного цвета. Через 1 такт времени красная бактерия меняется на зелёную, затем через 1 такт времени делится на красную и зелёную. Сколько будет всех бактерий через k тактов времени?
В консольном приложении.
Заранее благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2011, 19:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Красная бактерия (C++):

Каждая бактерия делится на две в течении одной минуты - C++
Помогите пожалуйста в задаче: Каждая бактерия делится на две в течении одной минуты. В начальный момент имеется A бактерий. Сколько...

Красная шапочка - C++
Красная Шапочка часто навещает свою бабушку. Но она очень боится, что рано или поздно ее бабушку опять навестит волк. Поэтому она решила...

Красная шапочка - C++
Красная Шапочка часто навещает свою бабушку. Но она очень боится, что рано или поздно ее бабушку опять навестит волк. Поэтому она решила...

Иероглифы вместо русских букв и Красная строка - C++
Здравствуйте! Я в этом деле новичок, поэтому прошу помощи: 1) Почему у меня вместо русских букв ставятся иероглифы? Когда печатаю...

Отформатировать текст в С++. "Красная строка" после точки - C++
Всем привет. Есть задание "Ввести с клавиатуры несколько строк, признаком конца ввода считать строку, состоящую из одной точки. Во...

Каждая бактерия ежеминутно делится на 2. Если в нечале у нас была одна бактерия, то сколько бактерий появится через 5,7,9,11,13,15 минут? - Turbo Pascal
Каждая бактерия ежеминутно делится на 2. Если в нечале у нас была одна бактерия, то сколько бактерий появится через 5,7,9,11,13,15 минут?...

6
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 724
27.10.2011, 19:53 #2
Через рекурсионную функцию
0
valeriikozlov
Эксперт С++
4681 / 2507 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
27.10.2011, 21:42 #3
Цитата Сообщение от crazygor1 Посмотреть сообщение
Имеется n бактерий красного цвета. Через 1 такт времени красная бактерия меняется на зелёную, затем через 1 такт времени делится на красную и зелёную. Сколько будет всех бактерий через k тактов времени?
Я немного перефразирую задание. Если оно Вас устроит то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
 
int main()
{
    int i, k, r, g=0, t;
    cin>>r;
    cin>>k;
    for(i=0; i<k; i++)
    {
        t=g;
        g+=r;
        r=t;
    }
    cout<<g+r;
    return 0;
}
Имеется n бактерий красного цвета. Через 1 такт времени красная бактерия меняется на зелёную, затем через 1 такт времени делится на красную и зелёную. Зеленая бактерия делится на красную и зелёную каждый такт. Сколько будет всех бактерий через k тактов времени?
1
crazygor1
6 / 6 / 1
Регистрация: 06.02.2010
Сообщений: 131
27.10.2011, 23:47  [ТС] #4
Спасибо, а как эту задачу реализовать через рекурсию?
0
valeriikozlov
Эксперт С++
4681 / 2507 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
28.10.2011, 06:03 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
void rec(int r, int g, int i)
{
    if(i==0)
        cout<<r+g;
    rec(g, r+g, i-1);
}
int main()
{
        int k, r;
        cin>>r;
        cin>>k;
        rec(r, 0, k);
        return 0;
}
1
vndtta
90 / 67 / 13
Регистрация: 17.10.2011
Сообщений: 235
Завершенные тесты: 1
28.10.2011, 09:19 #6
Цитата Сообщение от crazygor1 Посмотреть сообщение
Доброго времени суток! Ребят помогите плизик с задачей:
Имеется n бактерий красного цвета. Через 1 такт времени красная бактерия меняется на зелёную, затем через 1 такт времени делится на красную и зелёную. Сколько будет всех бактерий через k тактов времени?
В консольном приложении.
Заранее благодарен!
это последовательность фибоначчи в чистом виде
m-такты, k- красные бактерии, z- зеленые бактерии
z[m]=k[m-1]+z[m-1]=S[m-1]
k[m]=z[m-1]=S[m-2]
S[m]=k[m]+z[m]=S[m-1]+S[m-2]

ну а для этой последовательности есть формула Бине, по которой любой элемент вычисляется
http://ru.wikipedia.org/wiki/Числа_Фибоначчи
1
valeriikozlov
Эксперт С++
4681 / 2507 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
28.10.2011, 09:51 #7
crazygor1, в моем коде рек функцией функцию rec() напишите так:
C++
1
2
3
4
5
6
7
8
9
void rec(int r, int g, int i)
{
        if(i==0)
        {
                cout<<r+g;
                return;
        }
        rec(g, r+g, i-1);
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2011, 09:51
Привет! Вот еще темы с ответами:

Каждая бактерия делится на 4 в течение одной минуты,в начальный момент имеется одна бактерия.Сколько станет бактерий через 10 минут? - Turbo Pascal
1)Написать программу:Каждая бактерия делится на 4 в течение одной минуты,в начальный момент имеется одна бактерия.Сколько станет бактерий...

В начальный момент имеется одна бактерия.За одну минуту она делится по полам.Найти сколько бактерий через введенное число минут - Pascal ABC
В начальный момент имеется одна бактерия.За одну минуту она делится по полам.Найти сколько бактерий через введенное число минут

Красная шапочка - Python
Красная Шапочка часто навещает свою бабушку. Но она очень боится, что рано или поздно ее бабушку опять навестит волк. Поэтому она решила...

Красная линия - Lisp
как нарисовать в lisp красную линию


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

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

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