1 条题解
-
0
练8.5 幸运数
解题思路
最大倍数为 floor(N/K)×K,直接用整数商再乘回 K。
正确性说明
令 q=floor(N/K),则 qK≤N 而 (q+1)K>N,因此 qK 是不超过 N 的最大倍数。
易错点
N<K 时答案是 0,0 也属于非负整数。
复杂度
本题规模固定,时间 O(1),额外空间 O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); long long n, k; cin >> n >> k; cout << n / k * k << "\n"; return 0; }
- 1