Advertisement
kirya_shkolnik

27. Задание #T4919

Jun 24th, 2020
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.45 KB | None | 0 0
  1. //Дана последовательность  целых положительных чисел. Рассматриваются все пары элементов последовательности,
  2. //находящихся на расстоянии не меньше 10 (разница в индексах элементов должна быть 10 или более).
  3. //Необходимо определить количество пар, произведение чисел в которых кратно 10.
  4.  
  5.  
  6. #include <iostream>
  7.  
  8. using namespace std;
  9.  
  10. int main(){
  11.     const int diff = 10, div = 10; // diff - растояние между элементами, div - кратно чему (не используется)
  12.     int a[diff], temp, N, count=0; // всякая понятная шняга
  13.     int div1=0,div2=0,div5=0,div10=0; // запоминать числа кратные 1,2,5,10 (делители исходного числа)
  14.     cin >> N;
  15.     for(int i = 0; i < diff ; ++i){ // вводим первые diff элементов массива
  16.         cin >> a[i];
  17.     }
  18.     for(int i=diff; i<N; ++i){
  19.         cin >> temp; // новый элемент
  20.         if(a[0] % 10 == 0) div10++; // рассматриваем 0 элемент массива
  21.         if(a[0] % 5 == 0) div5++;
  22.         if(a[0] % 2 == 0) div2++;
  23.         div1++;
  24.        
  25.  
  26.         // сравниваем с числами которые уже вышли из массива и только что добавленным 0 элементом массива
  27.         // (разница между текущим temp и a[0] как раз в diff)
  28.         if(temp % 10 == 0) count+= div1;
  29.         else if(temp % 5 == 0) count+= div2;
  30.         else if(temp % 2 == 0) count+= div5;
  31.         else count+=div10;
  32.         // конец сравнивания
  33.  
  34.  
  35.         for(int j=0; j<diff-1; ++j) a[j] = a[j+1]; // опускаем все элементы массива на 1 вниз
  36.         a[diff-1]=temp; // вместо ластового элемента массива записываем новый temp
  37.     }
  38.    
  39.     cout << count; // profit.
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement