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

"О шахматной доске и зернах" - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
pashokman
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 10:07     "О шахматной доске и зернах" #1
"О шахматной доске и зернх". Известная индийская легенда утверждает, что когда великий гроссмейстер выиграл у падишаха в награду он попросил положить на первую клетку шахматной доски 1 зерно, на вторую - 2, на третью - 4, на четвертую - 16 и т.д. Опишите программу, содержащую рекурсивную процедуру вычисления количества зерен на n-й ячейке шахматной доски.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2011, 10:07     "О шахматной доске и зернах"
Посмотрите здесь:

C++ по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно
C++ Создать класс комплексных чисел и ввести операции: "+", "-", "*", "/".
Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") C++
Ход на шахматной доске C++
C++ В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mencey
 Аватар для Mencey
145 / 92 / 7
Регистрация: 22.07.2010
Сообщений: 424
28.04.2011, 10:10     "О шахматной доске и зернах" #2
Что у тебя не получается?
pashokman
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 10:27  [ТС]     "О шахматной доске и зернах" #3
Я не понимаю как через рекурсивную процедуру ето сделать!
Mencey
 Аватар для Mencey
145 / 92 / 7
Регистрация: 22.07.2010
Сообщений: 424
28.04.2011, 10:42     "О шахматной доске и зернах" #4
f(n) = 2^n + f(n-1)

C
1
2
3
4
5
6
int f(int n){
  if(n == 0){  // Выход из рекурсии с возвращение 1
    return 1;
  }
  return pow(2, n) + f(n-1); 
}
pashokman
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 10:51  [ТС]     "О шахматной доске и зернах" #5
большое спасибо!
Mencey
 Аватар для Mencey
145 / 92 / 7
Регистрация: 22.07.2010
Сообщений: 424
28.04.2011, 11:04     "О шахматной доске и зернах" #6
Кажется я вам наврал... Задание неправильно понял. Сейчас исправлюсь.

Проверьте на всякий случай.
C
1
2
3
4
5
6
int f(int n){
  if(n == 0){  // Выход из рекурсии с возвращение 1
    return 1;
  }
  return 2 * f(n-1); 
}
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
28.04.2011, 11:06     "О шахматной доске и зернах" #7
Цитата Сообщение от pashokman Посмотреть сообщение
на первую клетку шахматной доски 1 зерно, на вторую - 2, на третью - 4, на четвертую - 16
ТС, точно так?
pashokman
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 11:09  [ТС]     "О шахматной доске и зернах" #8
да точно так!
Mencey
 Аватар для Mencey
145 / 92 / 7
Регистрация: 22.07.2010
Сообщений: 424
28.04.2011, 11:09     "О шахматной доске и зернах" #9
Только тут 1-я будет нулевой).
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
28.04.2011, 11:10     "О шахматной доске и зернах" #10
http://ru.wikipedia.org/wiki/Задача_...ахматной_доске

Не ошибаетесь?
pashokman
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 11:14  [ТС]     "О шахматной доске и зернах" #11
а теперь я чет не понял как оно будет щитать количество зерен?

Добавлено через 2 минуты
neske понимаеш у меня немного другое задание))
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
28.04.2011, 11:16     "О шахматной доске и зернах" #12
ну тогда, если следовать вашему условию, код Mencey неверный, при n = 4, он выдаст 8.
pashokman
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 11:20  [ТС]     "О шахматной доске и зернах" #13
Я понял уже что он неверен но как сделать через рекурсию и так чтобы оно щитало правильно мое условие задачи?

Добавлено через 3 минуты
у меня получается каждый следующий елемент 2,4,16 нужно поднимать к квадрату чтобы получить следующий
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
28.04.2011, 11:27     "О шахматной доске и зернах" #14
1 в квадрате у вас тоже 2?

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
long func (int n)
{
    if (n == 1) return 1;
    if (n == 2) return 2;
 
    return func (n - 1) * func (n - 1);
}
pashokman
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 11:43  [ТС]     "О шахматной доске и зернах" #15
я говорил о елементах которые >=2 и к пощитаному числу получается нужно добавить 1 или както так. может я чет путаю потому что не понял до конца как рекурсию делать
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
28.04.2011, 11:51     "О шахматной доске и зернах" #16
Я тебе написал код.
pashokman
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 12:00  [ТС]     "О шахматной доске и зернах" #17
а как сдесь пощитать количество зерен на 2 клетке получится 1. а должно быть 2?
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
28.04.2011, 12:01     "О шахматной доске и зернах" #18
Нет, получится 2.
Вы вообще проверяли?
pashokman
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 12:05  [ТС]     "О шахматной доске и зернах" #19
кинь пример задачи как ты делал а то я чет немогу понять как оно должно щитать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2011, 12:08     "О шахматной доске и зернах"
Еще ссылки по теме:

C++ Задача о зернах на шахматной доске
Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" C++
C++ Описать структуру "Позиции шахматной фигуры"

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

Или воспользуйтесь поиском по форуму:
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
28.04.2011, 12:08     "О шахматной доске и зернах" #20
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
long func (int n)
{
    if (n == 1) return 1;
    if (n == 2) return 2;
 
    return func (n - 1) * func (n - 1);
}
 
int main()
{
    int N;
    std::cin >> N;
    std::cout << func (N);
 
    return 0;
}
Yandex
Объявления
28.04.2011, 12:08     "О шахматной доске и зернах"
Ответ Создать тему
Опции темы

Текущее время: 03:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru