16.1116 NOIP 考前模拟(信心题)

分火腿

(hdogs.pas/.c/.cpp)

时间限制:1s;内存限制 64MB

题目描述:

小月言要过四岁生日了,她的妈妈为她准备了n根火腿,她想将这些火腿均分给m位小朋友,所以她可能需要切火腿。为了省事,小月言想切最少的刀数,使这n根火腿分成均等的m份。请问最少要切几刀?

输入描述:

第一行一个整数T,表示有T组数据。

接下来T组数据,每组共一行,有两个数字n,m。

输出描述:

每组数据一行,输出最少要切的刀数。

样例输入:

2

2 6

6 2

样例输出:

4

0

数据范围:

100%的数据保证T<=1000;n,m<=2147483647。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 int n,m,t;
 6 int gcd(int x,int y)
 7 {
 8     if(y==0) return x;
 9     return gcd(y,x%y);
10 }
11 int main()
12 {
13     freopen("hdogs.in","r",stdin);
14     freopen("hdogs.out","w",stdout);
15     scanf("%d",&t);
16     while(t--)
17     {
18         scanf("%d%d",&n,&m);
19         printf("%d
",m-gcd(n,m));
20     }
21     fclose(stdin);fclose(stdout);
22     return 0;
23 }
原文地址:https://www.cnblogs.com/suishiguang/p/6068073.html