康纳的表情包
1
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
UMR 现在手里有 n 张康纳的表情,最上面一张是玛吉呀巴库乃。现在 UMR 如果每次把最上面的 m 张牌移到最下面而不改变他们的顺序及朝向,那么至少经过多少次移动玛吉呀巴库乃才会又出现在最上面呢?
3917
Input
多组输入。
每组输入以空格分隔的两个整数 n 和 m(题目中所提及的)。
1 <= n, m <= 10^9
Output
对于每组数据,输出一个整数,表示至少移动的次数。
Example Input
54 12
Example Output
9
Hint
Author
UMR
题目
校赛的时候,这题卡了一个多小时,当时一直没想到用最大公约数,感觉自己真的是太笨了……(我的博客的第一篇文章就是最大公约数和最小公倍数)。
Think:
这道题目仔细想想的话,还是很简单的,要想某张卡片再次出现,放到下面的个数就一定是原来的张数的倍数,还要是每次放到下面的张数的倍数,所以要求最大公约数,然后用总的张数/最大公约数。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, m, c, d, temp;
while(~scanf("%d %d", &n, &m))
{
d = n;
if(n<m)
temp = n, n = m, m = temp;
while (m!=0)
{
c = n % m;
n = m;
m = c;
}
printf("%d\n", d/n);
}
return 0;
}
---------------------
作者:莫若诩殇
来源:CSDN
原文:https://blog.csdn.net/feather2016/article/details/72863718
版权声明:本文为博主原创文章,转载请附上博文链接!
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
UMR 现在手里有 n 张康纳的表情,最上面一张是玛吉呀巴库乃。现在 UMR 如果每次把最上面的 m 张牌移到最下面而不改变他们的顺序及朝向,那么至少经过多少次移动玛吉呀巴库乃才会又出现在最上面呢?
3917
Input
多组输入。
每组输入以空格分隔的两个整数 n 和 m(题目中所提及的)。
1 <= n, m <= 10^9
Output
对于每组数据,输出一个整数,表示至少移动的次数。
Example Input
54 12
Example Output
9
Hint
Author
UMR
题目
校赛的时候,这题卡了一个多小时,当时一直没想到用最大公约数,感觉自己真的是太笨了……(我的博客的第一篇文章就是最大公约数和最小公倍数)。
Think:
这道题目仔细想想的话,还是很简单的,要想某张卡片再次出现,放到下面的个数就一定是原来的张数的倍数,还要是每次放到下面的张数的倍数,所以要求最大公约数,然后用总的张数/最大公约数。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, m, c, d, temp;
while(~scanf("%d %d", &n, &m))
{
d = n;
if(n<m)
temp = n, n = m, m = temp;
while (m!=0)
{
c = n % m;
n = m;
m = c;
}
printf("%d\n", d/n);
}
return 0;
}
---------------------
作者:莫若诩殇
来源:CSDN
原文:https://blog.csdn.net/feather2016/article/details/72863718
版权声明:本文为博主原创文章,转载请附上博文链接!