【题目描述】
A同学认为自己的幸运数是不超过N𝑁的非负整数里能被K𝐾整除的最大的数,你能帮他的算幸运数吗?
【输入】
输入—行,包含两个整数N𝑁,K𝐾(1≤N,K≤2×1091≤𝑁,𝐾≤2×109)。
【输出】
输出—行,包含一个整数,表示幸运数。
【输入样例】
3 2
【输出样例】
2
首先想到的是 当 n mod k <>0 就n--,找到最大的能被 k整除的数就可以了。后面在一本通启蒙中可以通过,但是在Hydro中不能通过,显示超时。
PROGRAM Project;
VAR
n, k: Longint;
BEGIN
Readln(n, k);
WHILE n MOD k <> 0 DO
BEGIN
n:=n-1;
END;
writeln(n);
END.
超时后想了一下应该有更快的办法,应该就是数学上,的问题,更新算法:耗时变成1ms
PROGRAM Project;
VAR
n, k: Longint;
BEGIN
Readln(n, k);
n :=n div k * k;
writeln(n);
END.