Cerinţa
Se dă un număr natural nenul k
și vector cu n
numere naturale. Să se înlocuiască fiecare element cu multiplul lui k
cel mai apropiat de el și să se afișeze elementele astfel obținute în ordine inversă.
Date de intrare
Programul citește de la tastatură numerele k
și n
, iar apoi n
numere naturale, separate prin spaţii, reprezentând elementele vectorului.
Date de ieşire
Programul afișează pe ecran elementele vectorului, după înlocuire, în ordine inversă, separate prin exact un spațiu.
Restricţii şi precizări
1 ≤ n ≤ 200
1 ≤ k ≤ 100
- elementele vectorului vor fi cuprinse între
1
și1.000.000
- dacă pentru un element al vectorului există mai multi cei mai apropiați multipli ai lui
k
, elementul va fi înlocui cu cel mai mic dintre aceștia
Exemplu
Intrare
5 4 17 14 24 25
Ieșire
25 25 15 15
#include <bits/stdc++.h> using namespace std; int multiplu(int n, int k) { int r = n % k; if(r <= k / 2) return n - r; else return n + k - r; } int main() { int k , n , a[201] , v[201]; cin >> k >> n; for(int i = 0 ; i < n; ++i) { cin >> a[i]; v[i] = multiplu(a[i],k); } for(int i = n-1 ; i >= 0 ; --i) { cout << v[i] << ' '; } }