Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Дана последовательность целых положительных чисел. Рассматриваются все пары элементов последовательности,
- //находящихся на расстоянии не меньше 10 (разница в индексах элементов должна быть 10 или более).
- //Необходимо определить количество пар, произведение чисел в которых кратно 10.
- #include <iostream>
- using namespace std;
- int main(){
- const int diff = 10, div = 10; // diff - растояние между элементами, div - кратно чему (не используется)
- int a[diff], temp, N, count=0; // всякая понятная шняга
- int div1=0,div2=0,div5=0,div10=0; // запоминать числа кратные 1,2,5,10 (делители исходного числа)
- cin >> N;
- for(int i = 0; i < diff ; ++i){ // вводим первые diff элементов массива
- cin >> a[i];
- }
- for(int i=diff; i<N; ++i){
- cin >> temp; // новый элемент
- if(a[0] % 10 == 0) div10++; // рассматриваем 0 элемент массива
- if(a[0] % 5 == 0) div5++;
- if(a[0] % 2 == 0) div2++;
- div1++;
- // сравниваем с числами которые уже вышли из массива и только что добавленным 0 элементом массива
- // (разница между текущим temp и a[0] как раз в diff)
- if(temp % 10 == 0) count+= div1;
- else if(temp % 5 == 0) count+= div2;
- else if(temp % 2 == 0) count+= div5;
- else count+=div10;
- // конец сравнивания
- for(int j=0; j<diff-1; ++j) a[j] = a[j+1]; // опускаем все элементы массива на 1 вниз
- a[diff-1]=temp; // вместо ластового элемента массива записываем новый temp
- }
- cout << count; // profit.
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement