题目链接
题目意思
一个人有n个袜子,编号1-n,每天穿一双,穿得只剩下一只的时候,会洗好按顺序放过去,继续穿,并且每次都先穿编号小的那一双,问第k次穿得袜子是编号多少的袜子。
解题思路
这是一道规律题。规律如下:
当n=3,袜子的编号:12312131213……由此可见123,12,13,12,13……12和13会一直循环下去
当n=4,袜子的编号:1234123124123124……由此可见1234,123,124,123,124……123和124会一直循环下去
等等
具体实现看代码部分吧
代码部分
#include <iostream>
#include <stdio.h>
#define LL long long int
using namespace std;
int main()
{
LL n,m;
int flag=1;
while(~scanf("%lld%lld",&m,&n))
{
printf("Case #%d: ",flag++);
if(n <= m)
{
printf("%lld\n",n);
}
else
{
n -= m;
LL a,b;
a = n/(m-1);
b = n%(m-1);
if(b == 0)
{
if(a%2==0)
{
printf("%lld\n",m);
}
else
{
printf("%lld\n",m-1);
}
}
else
{
printf("%lld\n",b);
}
}
}
return 0;
}