Вначале разберемся с i, потому что его значение определяет количество выполнений тела цикла.
Вначале значение i равно нулю, а затем при каждом проходе по циклу оно увеличивается на два, принимая значения 2, 4, 6, 8, ... Выход из цикла происходит при нарушении условия i ≤ 6, т.е. при i = 8 - это и будет последним значением i.
Значение S также первоначально равно нулю и в цикле оно увеличивается на i, последовательно становясь равным 2, 6, 12, ...
Цикл выполняется для четырех значений i, поэтому и в сумме будет четыре слагаемых. S = 0+2+4+6 = 12.
Ответ: i=8, S=12
Заменяем цифры числа
D 1101
8 1000
E 1110
C 1100
110110001110,1100
удаляем лишние нули
результат: 110110001110,11
начинаем делить число на два
200:2=100 ост. 0
теперь при каждом последующем делении берем частное от деления предыдущего числа и так пока не получим единицу
100:2=50 ост. 0
50:2=25 ост. 0
25:2=12 ост.1
12:2=6 ост. 0
6:2=3 ост. 0
3:2=1 ост. 1
1:2=0 ост. 1
теперь остатки запишем в обратном порядке 11001000 и получим число 200 в двоичной системе.
489:2=244 ост.1
244:2=122 ост. 0
122:2=61 ост. 0
61:2=30 ост. 1
30:2= 15 ост. 0
15:2=7 ост. 1
7:2=3 ост. 1
3:2=1 ост. 1
1:2=0 ост. 1
489 = 111101001
#include <iostream>
using namespace std;
int main(){
int n, j=0;
cin>>n;
unsigned long long arr[3*n+1];
unsigned long long arrb[n];
arr[0]=0; arr[1]=1;
for (int i=2; i<3*n+1; ++i) arr[i]=arr[i-1]+arr[i-2];
for (int i=3; i<3*n+1; i+=3, ++j) arrb[j]=arr[i];
for (int i=0; i<n; ++i) cout<<arrb[i]<<" ";
}
Каждый раз делишь на два и записываешь остаток, потом записываешь наоборот.
123/2 - остаток 1
61/2 - остаток 1
30/2 - остаток 0
15/2 - остаток 1
7/2 - остаток 1
3/2- остаток 1
под конец всегда нужно добавлять единицу
123 = 1111011
67/2 - остаток 1
33/2 - остаток 1
16/2 - остаток 0
8/2 - остаток 0
4/2 - остаток 0
2/2 - остаток 0
и под конец всегда нужно добавлять единицу
67=1000011