題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=6043
題意
主角有n雙襪子,他需要在所有襪子穿完的前一天將之前的襪子洗了再穿,問你在第k天他穿的是第幾雙襪子
解:
思維題,在草稿上推推就知道是一個循環節的題,之後找個循環節就行了,需要特判一下只有兩雙襪子的情況。
代碼:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;
int main()
{
int n;
long long k;
int cas=0;
while(scanf("%d%lld",&n,&k)!=-1)
{
printf("Case #%d: ",++cas);
if(k<=(n-1))printf("%lld\n",k);
else if(n==2)
{
int tmp=k%2;
if(tmp==1)printf("1\n");
else
printf("2\n");
}
else
{
int tmp=(k-(n-1))/(n-1);
int mdd=(k-(n-1))%(n-1);
if(tmp%2==1)
{
if(mdd==1)
printf("%d\n",n-1);
else if(mdd==0)
printf("%d\n",n-2);
else
printf("%d\n",mdd-1);
}
else
{
if(mdd==1)
printf("%d\n",n);
else if(mdd==0)
printf("%d\n",n-2);
else
printf("%d\n",mdd-1);
}
}
}
return 0;
}