#include <iostream>
#include <vector>
#include <random>
#include <ctime>
using namespace std;
void solve(){
srand(time(NULL));
const int N = 10;
vector<int> a(N), d(N + 1, 0);
for(int i = 0; i < N; i++){
a[i] = rand() % 100 + 1;
d[i + 1] = d[i] + a[i];
cout << a[i] << " ";
}
int firstIndex = -1, lastIndex = -1;
if(!(a[i] & 1)){
if(firstIndex < 0)
firstIndex = i;
lastIndex = i;
cout << "\n" << d[lastIndex + 1] - d[firstIndex];
int main(){
solve();
Наша i изначально равна 1, условие звучит как:
Пока i<=12, то...
Обратим внимание, что внутри цикла к нашей i постоянно прибавляется 4.
Чтобы наше условие i<=12 нарушилось, к нашей 1 надо 3 раза добавить число 4, таким образом мы понимаем, что наш цикл выполнится 3 раза.
Запускаем цикл первый раз, до его старта i=1, s=0
s:=s+i - на данный момент s=0, i=1, их и подставляем:
s:=0+1 = 1 - Новое значение s, старое значение мы теряем
i:=i+4 -на данный момент i=1, его и подставляем
i:=1+4=5 - старое значение (1) мы теряем
Завершился первый цикл. Проверяем условие запуска второго цикла: i<=12
5<=12 ? Да. Запускаем цикл:
s:=s+i
s:=1+5=6
i:=i+4
i:=5+4=9
Завершилось второе выполнение цикла.
i<=12?
9<=12? Да. Запускаем цикл:
s:=6+9=15
i:=9+4=13
Завершилось третье выполнение цикла.
13<=12? Нет! Цикл не запускается, программа продолжает своё выполнение.
В самом конце программы у нас выводится значение s. Её актуальное значение: 15, что и будет являться ответом.
#include <iostream>
#include <vector>
#include <random>
#include <ctime>
using namespace std;
void solve(){
srand(time(NULL));
const int N = 10;
vector<int> a(N), d(N + 1, 0);
for(int i = 0; i < N; i++){
a[i] = rand() % 100 + 1;
d[i + 1] = d[i] + a[i];
cout << a[i] << " ";
}
int firstIndex = -1, lastIndex = -1;
for(int i = 0; i < N; i++){
if(!(a[i] & 1)){
if(firstIndex < 0)
firstIndex = i;
lastIndex = i;
}
}
cout << "\n" << d[lastIndex + 1] - d[firstIndex];
}
int main(){
solve();
}
Наша i изначально равна 1, условие звучит как:
Пока i<=12, то...
Обратим внимание, что внутри цикла к нашей i постоянно прибавляется 4.
Чтобы наше условие i<=12 нарушилось, к нашей 1 надо 3 раза добавить число 4, таким образом мы понимаем, что наш цикл выполнится 3 раза.
Запускаем цикл первый раз, до его старта i=1, s=0
s:=s+i - на данный момент s=0, i=1, их и подставляем:
s:=0+1 = 1 - Новое значение s, старое значение мы теряем
i:=i+4 -на данный момент i=1, его и подставляем
i:=1+4=5 - старое значение (1) мы теряем
Завершился первый цикл. Проверяем условие запуска второго цикла: i<=12
5<=12 ? Да. Запускаем цикл:
s:=s+i
s:=1+5=6
i:=i+4
i:=5+4=9
Завершилось второе выполнение цикла.
i<=12?
9<=12? Да. Запускаем цикл:
s:=s+i
s:=6+9=15
i:=i+4
i:=9+4=13
Завершилось третье выполнение цикла.
i<=12?
13<=12? Нет! Цикл не запускается, программа продолжает своё выполнение.
В самом конце программы у нас выводится значение s. Её актуальное значение: 15, что и будет являться ответом.