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

Написать прогграмма - C++

Восстановить пароль Регистрация
 
verena-12358
1 / 1 / 0
Регистрация: 12.10.2011
Сообщений: 165
28.10.2011, 18:26     Написать прогграмма #1
3.Вы, наверное, слышали историю о том, как один могущественный правитель обещал наградить ученого, оказавшего ему большую услугу. Ученый, когда его спросили, что бы он хотел получить в награду, указал на шахматную доску и промолвил: «Положите одно пшеничное зерно на первую клетку, два — на вторую, четыре на третью, восемь на следующую и т. д.». Правитель, которому явно недоставало математической эрудиции, был поражен, услышав такую скромную просьбу,— ведь он уже приготовил богатые дары. Программа, которую вы составите, показывает, в какое смешное положение попал правитель. В ней вычисляется количество зерен, которое надо положить на каждую клетку, а также промежуточные результаты (суммы зерен по числу клеток). Поскольку вы, возможно, не знакомы с урожаями пшеницы, мы, кроме того, сравниваем промежуточные суммы зерен с приблизительными цифрами годового урожая пшеницы в США (#define CROP 7E14- количество зерен, выращиваемых в США за 1 год).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2011, 18:26     Написать прогграмма
Посмотрите здесь:

C++ Помогите написать формулу ,никак немогу написать (2k)! в ней

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
28.10.2011, 18:55     Написать прогграмма #2
Это был не учёный, а изобретатель шахмат, зёрна были рисовыми, столько зерна не выращено с каменного века и до сих пор.
ViT(Vet@l)
27 / 26 / 2
Регистрация: 13.12.2010
Сообщений: 333
28.10.2011, 19:07     Написать прогграмма #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
using namespace std;
 
int step(int);
 
int main()
{
    int a = 1, summa = 0;
    for(int i = 1; i <= 64; i++){
        int x = step(i);
        summa += x;
        cout << "Summa " << summa << endl;
 
    }
 
    return 0;
}
 
int step(int a){
    int b = 0;
    b = a * a;
    cout << "Kletka " << a << " zeren " << b << endl;
    return b;
}
не то, я невнимательно условие прочитал
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
28.10.2011, 19:11     Написать прогграмма #4
В первой клетке 2^0 зерен.
Во второй клетке 2^1 зерен
...
В последней клетке 2^63 - столько в int не в лезет, а тем более сумма всем зерен.
silent_1991
28.10.2011, 19:16
  #5

Не по теме:

taras atavin, вы, походу, за спиной у него стояли?

ViT(Vet@l)
27 / 26 / 2
Регистрация: 13.12.2010
Сообщений: 333
28.10.2011, 19:19     Написать прогграмма #6
Chelioss, я же написал - неправильно прочита задание.
Да, даже в unsigned long не пойдет - на количесиве в 32 клетке заваливается...
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
28.10.2011, 19:20     Написать прогграмма #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#define BASE 10
 
typedef std::vector <int> tlong;
 
void print (const tlong &);
void power (tlong &, const int);
 
int main()
{
    tlong vec;
    const int n = 64;
    const int val = 2;
 
    vec.push_back (1);
    print (vec);
 
    for (int i = 0; i < n - 1; i++) {
        power (vec, val);
        print (vec);
    }
 
    return 0;
}
 
void print (const tlong &vec) {
    std::copy (vec.rbegin(), vec.rend(), std::ostream_iterator <int> (std::cout, ""));
    std::cout << std::endl;
}
 
void power (std::vector <int> &vec, const int var)
{
    int carry = 0;
    for (int i = 0; i < vec.size () || carry; i++)
    {
        if (i == vec.size ())
            vec.push_back (0);
        carry += vec[i] * var;
        vec[i] = carry % BASE;
        carry /= BASE;
    }
}
Yandex
Объявления
28.10.2011, 19:20     Написать прогграмма
Ответ Создать тему
Опции темы

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