Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
TheNorby
0 / 0 / 0
Регистрация: 30.10.2016
Сообщений: 1
#1

Разобраться в коде подсчета суммы зерен на шахматной доске. - C++

30.10.2016, 18:08. Просмотров 150. Ответов 3
Метки нет (Все метки)

Помогите разобраться в исходном коде. Почему здесь в цикле «for» находиться другой цикл «for»? Что значит символ «j» и переменная pow? И почему в конце кода надо опять писать pow = 1?? Спасибо.

C++
1
2
3
4
5
6
7
8
9
10
11
const int N = 64;
    unsigned long long result = 1, pow = 1;
 
    for(int i(1); i <= 64; i++)
    {
       for(int j(0); j < i; j++)
          pow *= 2;
       cout << "В сумме на " << i << " клетке приходиться " << result << " зерна!\n";
       result += pow;
       pow = 1;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2016, 18:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разобраться в коде подсчета суммы зерен на шахматной доске. (C++):

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

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

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

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

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

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

3
zss
Модератор
Эксперт С++
6626 / 6188 / 2047
Регистрация: 18.12.2011
Сообщений: 16,132
Завершенные тесты: 1
30.10.2016, 22:18 #2
Можете 6 и 10 строчки убрать.
Результат не изменится.
Цикл по j зачем-то снова пересчитывает 2i
0
Croessmah
Ушел
Эксперт CЭксперт С++
13563 / 7714 / 873
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
31.10.2016, 13:22 #3
C++
1
2
       for(int j(0); j < i; j++)
          pow *= 2;
цикл "накапливает" в pow степень двойки,
добираясь до нужной степени на каждой итерации.

C++
1
       pow = 1;
"сбрасывает" нашу степень,
чтобы начать заново на новой итерации.

Зачем это нужно? А фиг его знает,
вполне можно вот так сделать:

C++
1
2
3
4
5
6
    for(unsigned long long i(1); i <= 64; i++)
    {
       cout << "В сумме на " << i << " клетке приходится " << result << " зерна!\n";
       result <<= 1u;
       result |= 1u;
    }
т.е. вообще без pow и цикла.

Или даже без всяких result:

C++
1
2
3
4
    for(unsigned long long i(0); i < 64; i++)
    {
       cout << "В сумме на " << (i+1) << " клетке приходится " << ((1ull << i) | ((1ull << i) - 1ull)) << " зерна!\n";
    }
0
Байт
Диссидент
Эксперт C
16822 / 11087 / 1743
Регистрация: 24.12.2010
Сообщений: 21,757
31.10.2016, 14:16 #4
C++
1
for(res=0, i=0; i<N; i++) res |= (1<<i);
0
31.10.2016, 14:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2016, 14:16
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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