题目描述
给定两个正整数n与d,请找到所有最接近n且是d的倍数的整数。
输入
- 第一行:单个整数表示n
- 第二行:单个整数表示d
输出
若干行:每行一个整数,表示满足要求的答案,若有多个数字满足要求,则以从小到大的顺序输出。
假设n=100 d=3 则答案是99
假设n=10 d=2 则答案是8 12
样例输入
11
2
样例输出
10
12
数据范围
- 1≤n≤1,000,000,0001≤n≤1,000,000,000
- 1≤d≤1,000,000,0001≤d≤1,000,000,000
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,d;
cin>>n>>d;
if(n%d==0) cout<<n-d<<"\n"<<n+d;//排除特殊项
else{
int k=n/d;//样例分析:11/2=5
int a1=k*d;//样例分析:5*2=10
int a2=a1+d;//样例分析:10+2=12
if(a2-n<n-a1) cout<<a2;
else if(a2-n>n-a1) cout<<a1;
else cout<<a1<<"\n"<<a2;
}
return 0;
}