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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
pashokman
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
#1

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

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

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

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

Описать структуру "Позиции шахматной фигуры" - C++
Необходимо задать описание структуры FigurePosition – позиции шахматной фигуры. Вопрос, казалось бы, элементарный,но дойти до истины не...

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

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

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

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

Расставить n ладей на шахматной доске n*n - C++
Вообщем нужно расставить n ладей на шахматной доске n*n Вот то что у меня получилось: #pragma argsused #include<iostream.h> int...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mencey
147 / 94 / 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
147 / 94 / 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
147 / 94 / 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
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
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
147 / 94 / 7
Регистрация: 22.07.2010
Сообщений: 424
28.04.2011, 11:09     "О шахматной доске и зернах" #9
Только тут 1-я будет нулевой).
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
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
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
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
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
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
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
28.04.2011, 11:51     "О шахматной доске и зернах" #16
Я тебе написал код.
pashokman
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
28.04.2011, 12:00  [ТС]     "О шахматной доске и зернах" #17
а как сдесь пощитать количество зерен на 2 клетке получится 1. а должно быть 2?
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
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++
Всем доброго времени суток.Отписывайтесь кто как решил. #include "head.h" void main() {//на поле 64 клетки ///сколько надо...

Задача про зерна на шахматной доске - C++
Математическая задача про пшеничные зернышки и шахматную доску. Когда на первую клетку кладется одно зернышко, на вторую – два, на третью -...

Просчет ходов Слона по шахматной доске - C++
Здравствуйте. Помогите, пожалуйста, с решением задачи на просчет ходов слона по шахматной доске. Функционал: Вводим: текущее...

Одного ли цвета клетки на шахматной доске? - C++
Даны координаты двух полей шахматной доски (координаты клетки - это 2 числа от 1 до 8: номер столбца и номер строки) Одно ли цвета эти...


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

Или воспользуйтесь поиском по форуму:
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
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     "О шахматной доске и зернах"
Ответ Создать тему
Опции темы

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