Rezolvare completă PbInfo #383 inlocuireK

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 și 1.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

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema inlocuireK:

#include <iostream>
#include <cassert>
using namespace std;

int main(){
    int n,k,v[200];
    cin >> k >> n;
    
    for(int i = 0 ; i < n ; ++ i)
        cin >> v[i];
    for(int i = 0 ; i < n ; ++ i)
    {
        int x = v[i] / k * k;
        int y = x + k;
        if(v[i] - x <= y - v[i])
            v[i] = x;
        else
            v[i] = y;
    }
    for(int i = n - 1 ; i >= 0 ; -- i)
        cout << v[i] << " ";
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #383 inlocuireK

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #383 inlocuireK de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!