糖果
题目描述
三年级七班共有 n n n 名同学。体育课开始,他们从左到右站成了一排,准备进行报数分组。
体育老师口袋里有很多袋装的糖果(一个袋子里有很多糖果),他准备在分组的过程中顺便将这些袋装糖果分给同学们。
具体地,在从左到右报数的过程中,每报数 k k k 名同学,体育老师就会将这 k k k 名同学划为一组,同时给予这 k k k 名同学中的最后一名一袋糖果,让这最后一名同学来负责分发给组内的同学。也就是说,体育老师会依次给从左到右第 k , 2 k , ⋯ k,2k,\cdots k,2k,⋯ 名同学一袋糖果。
恰巧,三年级六班的同学听到了三年级七班发糖果的消息,于是他们打算混入队伍的末尾(即队伍最右侧),企图白嫖到一袋糖果。
三年级六班的同学想知道,他们至少需要向队伍末尾混入多少人。
输入格式
一行两个整数 n , k n, k n,k。
输出格式
一行一个整数,表示答案。
样例 #1
样例输入 #1
10 3
样例输出 #1
2
样例 #2
样例输入 #2
16 4
样例输出 #2
4
提示
样例 1 解释
此时每 3 3 3 人分一组。三年级六班只需要向队伍中混入 2 2 2 名同学,就可以和原来三年级七班的最后 1 1 1 名同学一同凑成一组。
由于混入的这 2 2 2 名同学在队伍的末尾,因此这一组中的最后一名同学一定是隔壁班的同学,因此隔壁班的同学可以白嫖到一袋糖果。
样例 2 解释
此时每 4 4 4 人分一组。三年级七班的所有同学都已经分好了组,因此三年级六班需要完整地向队伍中混入 4 4 4 名同学凑成一组,才能白嫖到一袋糖果。
数据规模与约定
对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 1 0 9 1 \leq n \leq 10 ^ {9} 1≤n≤109, 2 ≤ k ≤ 1 0 9 2 \leq k \leq 10 ^ 9 2≤k≤109。
测试点编号 | n n n | k k k |
---|---|---|
1 ∼ 2 1 \sim 2 1∼2 | ≤ 10 \leq 10 ≤10 | = 2 = 2 =2 |
3 ∼ 5 3 \sim 5 3∼5 | ≤ 10 \leq 10 ≤10 | ≤ 10 \leq 10 ≤10 |
6 ∼ 10 6 \sim 10 6∼10 | ≤ 1000 \leq 1000 ≤1000 | ≤ 1000 \leq 1000 ≤1000 |
11 ∼ 14 11 \sim 14 11∼14 | ≤ 1 0 9 \leq 10 ^ 9 ≤109 | = 2 = 2 =2 |
15 ∼ 20 15 \sim 20 15∼20 | ≤ 1 0 9 \leq 10 ^ 9 ≤109 | ≤ 1 0 9 \leq 10 ^ 9 ≤109 |
AC 代码
#include<iostream>
using namespace std;
int n,k;
int main(){
cin>>n>>k;
if(n%k==0){
cout<<k<<endl;
}else{
cout<<k-n%k<<endl;
}
return 0;
}