讨厌洗袜子

哈哈,关于洗袜子,相信大家在生活中或许被其困扰过,在某些时候以各种理由(比如:我忙没时间;水太冷了,扎手;本人太懒o_o …额!!!等等)推脱,以至于自己的袜子…这种大众糗事就不提了。现在咱们切入正题,话说现在有一道关于洗袜子的题(讨厌,又是关于袜子的问题),题目是这样的:
**

题目描述:

**
hh(他很懒,)有n双袜子,编号从1~n,每天穿编号最小的一双,当穿到最后一双时,把前面袜子都洗了,然后再按编号最小的开始穿。问你第k天穿的编号是多少?
**

输入

多组测试样例,每组样例输入一个n和一个k(1<n<=100000,1<=k<=1e18)

输出

每组样例中第k天穿的袜子的编号。(over。好难啊,要暴力模拟么?你试试Σ(っ °Д °;)っ 会超时?)

经过我多方考察,我怀疑这是一道规律题(●’◡’●)(我是不是很聪明哈哈,答案是肯定的)。那么问题来了,这规律?
下面不如打个比方,假设这个贼鸡儿懒得hh有三双袜子,我们整理一下思路。(我们把三双袜子编号1、2、3;用⭕k表示第k天所穿袜子情况,例如:
1
①表示第一天所穿袜子的编号为1;把每一次洗袜子当作新一轮的开始),那么:

洗袜子喽

                      1                 2                    3
   **第一轮**          ①                 ②                    ③
   **第二轮**          ④                 ⑤                    ?(3号袜子hh穿了但没有洗哦,所以第六天不是穿3好袜子,而是1号袜子,聪明的你不要忘了哦?)
   **第三轮**          ⑥                 ?                   ⑦
   **第四轮**          ⑧                 ⑨                    ?

经过四轮的洗袜子,我感觉hh快要累屎了,我们让他歇歇,替他总结一下规律,看看他第k天所穿的袜子的编号。
1.通过第一轮,我们明显看出如果k=1 or 2 or 3 时,我们可以毫不犹豫地说他穿的就是当天天数所对应的袜子。(那么如果n!=3时呢?)
2.第二轮时4、5分别对应1、2号袜子,这样的话我们是不是可以通过去减去3(即n)去找到1和2呢?
3.(重头戏哦!)第四轮后如果我们一直往后推下去,你会发现以后会出现循环现象,第五六轮、第七八轮等都跟第三四轮情况一样,只不过当天编码不一样。因此,我大胆地猜想,如果我找到了第三四轮的规律,那么我就找到了以后的所有。(天啊w(゚Д゚)w,我太棒了,点个赞)第三四轮里的天数会跟第二轮的5扯上关系,所以不妨记下来,然后我们去用后边的天数与之相减,接下来就是见证奇迹的时候了(●ˇ∀ˇ●)。
规律:

嘻嘻,经过我大量的数据考量,结果呈现了哈哈。每轮袜子对应的天数会逐加 袜子的双数(3)-1,如果该袜子上轮轮空(即穿了未洗),那么下一轮该袜子对应的天数加 两倍的[袜子双数(3)-1]。最后我们去记录第k天与我们之前提到的5的差,然后然它减2,直到小于3。当他最后等于1时对应袜子1,等于0对应袜子2,等于2对应袜子3.那么我大胆的猜想如果袜子是n双,那么规律也是如此。?

那么我神圣的代码来了ヽ(✿゚▽゚)ノ:
在这里插入图片描述
经历千辛万苦,我们的袜子终于洗好了,哎,真讨厌,讨厌洗袜子!?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值