0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
1

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

28.04.2011, 10:07. Показов 3778. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
"О шахматной доске и зернх". Известная индийская легенда утверждает, что когда великий гроссмейстер выиграл у падишаха в награду он попросил положить на первую клетку шахматной доски 1 зерно, на вторую - 2, на третью - 4, на четвертую - 16 и т.д. Опишите программу, содержащую рекурсивную процедуру вычисления количества зерен на n-й ячейке шахматной доски.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2011, 10:07
Ответы с готовыми решениями:

Задача о зернах на шахматной доске
Математическая задача, в которой вычисляется, сколько будет зёрен на шахматной доске, если класть...

Ход на шахматной доске
Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер...

Конь на шахматной доске
Само задание: «Конь на шахматной доске». Данные класса: координаты коня. Функции класса: сравнение...

Числа на шахматной доске
В клетках шахматной доски находятся целые число. --- Определить в программе глобальные данные –...

23
155 / 102 / 12
Регистрация: 22.07.2010
Сообщений: 445
28.04.2011, 10:10 2
Что у тебя не получается?
0
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 10:27  [ТС] 3
Я не понимаю как через рекурсивную процедуру ето сделать!
0
155 / 102 / 12
Регистрация: 22.07.2010
Сообщений: 445
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); 
}
1
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 10:51  [ТС] 5
большое спасибо!
0
155 / 102 / 12
Регистрация: 22.07.2010
Сообщений: 445
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); 
}
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
28.04.2011, 11:06 7
Цитата Сообщение от pashokman Посмотреть сообщение
на первую клетку шахматной доски 1 зерно, на вторую - 2, на третью - 4, на четвертую - 16
ТС, точно так?
0
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 11:09  [ТС] 8
да точно так!
0
155 / 102 / 12
Регистрация: 22.07.2010
Сообщений: 445
28.04.2011, 11:09 9
Только тут 1-я будет нулевой).
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
28.04.2011, 11:10 10
http://ru.wikipedia.org/wiki/З... тной_доске

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

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

Добавлено через 3 минуты
у меня получается каждый следующий елемент 2,4,16 нужно поднимать к квадрату чтобы получить следующий
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
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);
}
0
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 11:43  [ТС] 15
я говорил о елементах которые >=2 и к пощитаному числу получается нужно добавить 1 или както так. может я чет путаю потому что не понял до конца как рекурсию делать
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
28.04.2011, 11:51 16
Я тебе написал код.
0
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 12:00  [ТС] 17
а как сдесь пощитать количество зерен на 2 клетке получится 1. а должно быть 2?
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
28.04.2011, 12:01 18
Нет, получится 2.
Вы вообще проверяли?
0
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 12:05  [ТС] 19
кинь пример задачи как ты делал а то я чет немогу понять как оно должно щитать?
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
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;
}
1
28.04.2011, 12:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2011, 12:08
Помогаю со студенческими работами здесь

Числа на шахматной доске
В клетках шахматной доски находятся целые число. --- Определить в программе глобальные данные –...

Числа на шахматной доске в С++
В клетках шахматной доски находятся целые числа. --- Определить в программе глобальные данные-...

Расстановка ферзей на шахматной доске
Найти на кубической доске всевозможные расстановки 15 ферзей так, чтобы они не били друг друга

Цвет клеток на шахматной доске
Даны координаты двух различных полей шахматной доски x1, y1, x2, y2 (целые числа, лежащие в...

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

Геометрическая прогрессия на шахматной доске
Всем доброго времени суток.Отписывайтесь кто как решил. #include &quot;head.h&quot; void main() {//на...

Замена фигур на шахматной доске
задача. расставить случайным образом четырех коней на шахматной доске (два белых и два черных)....


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

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

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