426
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 ≤ 2001 ≤ 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] << ' ';
}
}
Comentarii