Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
1

Индийская легенда

12.05.2011, 10:01. Показов 2692. Ответов 34
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
НАРОД ПОМОГИТЕ ПЛЗ! ПОДСКАЖИТЕ КАК ВЫВЕСТИ ОЧ БОЛЬШОЕ ЧИСЛО В ЭТОЙ ЗАДАЧЕ НАПРИМЕР ЕСЛИ ВЗЯТЬ 10 ячейку?

"О шахматной доске и зернах". Известная индийская легенда утверждает, что когда великий гроссмейстер выиграл у падишаха в награду он попросил положить на первую клетку шахматной доски 1 зерно, на вторую - 2, на третью - 4, на четвертую - 16 и т.д. Опишите программу, содержащую рекурсивную процедуру вычисления количества зерен на n-й ячейке шахматной доски.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include "conio.h"
 
int func(int n)
{
    if (n == 1) return 1;
    if (n == 2) return 2;
 
    return func(n-1)*func(n-1);
}
 
int main()
{
    int N;
    scanf("%d",&N);
    printf("%d",func(N));
    getch();
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2011, 10:01
Ответы с готовыми решениями:

Легенда диаграммы
Здравствуйте, товарищи программисты! :) Помогите пожалуйста дополнить код, чтобы в легенде...

Легенда о шахматах
Согласно древней легенде, создатель игры «шахматы» согласился продать их за зерно, количество...

Легенда на графике
Как создать легенду под графиком расчета биоритмов? Зеленый- физическое состояние, красный-...

Легенда к 3D-графику в MathCAD
Добрый день, добрый день, возможно в маткаде для цветного 3 д графика представить цветную легенду,...

34
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
12.05.2011, 12:23  [ТС] 21
Author24 — интернет-сервис помощи студентам
ну я понимаю задачу так что должна получится такая последовательность 1 2 4 16 256...

Добавлено через 1 минуту
и на последней ечейке будет очень большое число так как его вывести строкой формула у меня правильная как написать задачу чтоб выводило большое число строкой?
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
12.05.2011, 12:23 22
Цитата Сообщение от pashokman Посмотреть сообщение
ну я понимаю задачу так что должна получится такая последовательность 1 2 4 16 256...
А я не понимаю, у этой последовательности вообще никакой логики нету...
А вообще это геометрическая прогрессия...
0
32 / 32 / 6
Регистрация: 24.02.2011
Сообщений: 126
12.05.2011, 12:25 23
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdio.h" 
unsigned long long func(int n)
{
    if (n == 1) return 1; 
    return 2*func(n-1);
}
 
int main()
{
    int N;
    scanf("%d",&N);
    printf("%llu",func(N));
    getchar();
    return 0;
}
посл-ть :1,2,4,8,16,32,64,128,256,512,1024,2048...
0
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
12.05.2011, 12:38  [ТС] 24
помоему по условию задачи должно быть 2^1 2^2 2^4 2^8! я реально уже не знаю как по другому
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
12.05.2011, 12:44 25
Одному мне кажется, что 18 миллиардов зерен на 1 ячейку это слишком?
Если так
2^1 2^2 2^4 2^8
То гуглим "длинная арифметика"+"возведение в степень"
0
32 / 32 / 6
Регистрация: 24.02.2011
Сообщений: 126
12.05.2011, 12:46 26
Цитата Сообщение от pashokman Посмотреть сообщение
помоему по условию задачи должно быть 2^1 2^2 2^4 2^8! я реально уже не знаю как по другому
http://ru.wikipedia.org/wiki/%... 0%B0%D1%82

Цитата Сообщение от pashokman Посмотреть сообщение
он попросил положить на первую клетку шахматной доски 1 зерно, на вторую - 2, на третью - 4, на четвертую - 16 и т.д.
это точное условие задачи?
0
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
12.05.2011, 12:51  [ТС] 27
ну у меня такое условие "он попросил положить на первую клетку шахматной доски 1 зерно, на вторую - 2, на третью - 4, на четвертую - 16 и т.д."
0
32 / 32 / 6
Регистрация: 24.02.2011
Сообщений: 126
12.05.2011, 12:55 28
Цитата Сообщение от pashokman Посмотреть сообщение
ну у меня такое условие "он попросил положить на первую клетку шахматной доски 1 зерно, на вторую - 2, на третью - 4, на четвертую - 16 и т.д."
тогда 99% условие некорректно)
0
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
12.05.2011, 12:56  [ТС] 29
я опять ошибся там должно бить 2^1 2^2 2^3 2^4 2^5...
0
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
12.05.2011, 18:39 30
Цитата Сообщение от eXXXXXXXXXXX Посмотреть сообщение
тогда 99% условие некорректно)
Скорее всего коректно.

Цитата Сообщение от pashokman Посмотреть сообщение
ну я понимаю задачу так что должна получится такая последовательность 1 2 4 16 256...
Наверное нет.
Предлагаю так:
Изначально есть 1.
Все последующие члены последовательности выводятся так:
2 в степени предыдущего значения. Т. е. имеем:
2^1 = 2
2^2 = 4
2^4 = 16
2^16 = 65536
и т.д.
0
32 / 32 / 6
Регистрация: 24.02.2011
Сообщений: 126
12.05.2011, 20:01 31
valeriikozlov, ну так ведь легенда не такая и автор темы написал, что ошибся)
0
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
12.05.2011, 21:08 32
eXXXXXXXXXXX,
Ну вообще-то автор пишет:
Цитата Сообщение от pashokman Посмотреть сообщение
ну у меня такое условие "он попросил положить на первую клетку шахматной доски 1 зерно, на вторую - 2, на третью - 4, на четвертую - 16 и т.д."
А его высказывания:
Цитата Сообщение от pashokman Посмотреть сообщение
помоему по условию задачи должно быть 2^1 2^2 2^4 2^8! я реально уже не знаю как по другому
Цитата Сообщение от pashokman Посмотреть сообщение
я опять ошибся там должно бить 2^1 2^2 2^3 2^4 2^5...
это по моему его догадки.
А сама легенда изначально конечно не так звучит. Но ведь любую легенду можно немного изменить, на то она и легенда....
0
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 44
13.05.2011, 17:14  [ТС] 33
да возможно и так но как сделать чтобі віводило большое число например при вводе числа 12 уже ничего не выводит а должно выводить! если ты знаеш как это сделать то кинь плз всю задачу!)))
0
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
14.05.2011, 05:36 34
Цитата Сообщение от pashokman Посмотреть сообщение
да возможно и так но как сделать чтобі віводило большое число например при вводе числа 12 уже ничего не выводит а должно выводить! если ты знаеш как это сделать то кинь плз всю задачу!)))
Если бы все было так просто, я бы написал код.
Но поверьте мне, что если условие задачи корректно (и для решения этой задачи подходит только способ, который я описал в 30 сообщении этой темы), то даже используя длинную арифметику, задачу решить невозможно.
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 06:32 35
Пиши класс-контейнер, хранящий значение в нескольких переменных, и перегружай для него операторы.
0
14.05.2011, 06:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2011, 06:32
Помогаю со студенческими работами здесь

Динамическая легенда в цикле
Здравствуйте! Первый мой вопрос на этом форуме, не кусайте больно. Есть цикл(ниже приведу код),...

Легенда про try catch
Правда ли, что при использовании try catch, код выполняется дважды (1ый раз типа создает новый...

Легенда о Иосифе Флавии
Существует легенда, что Иосиф Флавий - известный историк первого века - выжил и стал известным...

DBChart. Легенда графика
не могу найти, как в DBChart заполнить легенду. очень нужна помощь. и информации по Chart'у мало...


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

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