Informatică, întrebare adresată de scoicadelac, 9 ani în urmă

Se dau două numere naturale nenule n și k. Să se determine multiplul lui k cel mai apropiat de n.

Date de intrare
Programul citește de la tastatură numerele n și k, în această ordine.

Date de ieşire
Programul afișează pe ecran numărul p, reprezentând determine multiplul lui k cel mai apropiat de n.

Restricţii şi precizări
1 ≤ k ≤ n ≤ 1.000.000
dacă există mai mulți multipli ai lui k la fel de apropiați de n, se va afișa cel mai mic

Exemplu
Intrare

18 5
Ieșire

20

Răspunsuri la întrebare

Răspuns de artur99
46
#include <iostream>
using namespace std;
int main(){
  int n,k,p,t;
  cin>>n>>k;
  t = n/k;
  if(n-t*k <= -(n-(t+1)*k)){
    p=t*k;
  }else{
    p=(t+1)*k;
  }
  cout<<p;
}
//Calculam, generam cele 2 posibilitati din
//jurul lui 18 (adica 20 si 15) apoi le comparam
//unul va fi negativ, deci punem - in fata

AntiEaglesDavids: that was clever
artur99: :D
Alte întrebări interesante