腾讯微众银行2019春招-2020实习Java方向笔试算法题(4.11)

  • Post author:
  • Post category:java




第一题:玩游戏



题目描述

有一天,阳阳和他的小伙伴一起玩游戏!

他们总共有

n

个人,排成一圈,然后从第一个人开始依次报数,1,2,3,…报道

m

的人退出游戏,然后从下一个人开始重新从1报数,重复这个过程,直到只剩下一个人时,此人就是游戏的获胜者



输入

两个整数 n 和 m

1 <= n,m <= 1000



输出

第一行n-1个数,依次表示退出游戏的人。

第二行一个数表示获胜者编号。



样例输入

6 4



样例输出

4 2 1 3 6
5



第二题:技能学习

人族和兽族为了争夺一处矿产掀起了世界大战。大战在即,先知召集兽族各勇士学习新的攻击技能。先知想要让

n

(1<=n<=100000)个兽族勇士都分别学会K(1<=k<=100000)种技能,但一个一个教的效率太低,先知在精灵杂货铺那里买来了分身宝石,使用分身宝石后,就出现了m(1 <= m <= 100000)个先知。先知教会一个兽族勇士一个技能的时间是一分钟,一个兽族勇士在同一时间只能学习一个技能,一个先知在同一时间也只能教一个勇士学习技能,不同先知或不同勇士当然可以在同一时间教授或学习技能。

大战即将爆发,先知想要知道最少需要多久才能教会n个勇士分别学会k个技能?



输入

一行三个整数n,k,m,以空格隔开。



输出

一行一个整数表示n个勇士分别学会k个技能的最少时间。



样例输入

2 1 1



样例输出

2



第三题:KB跳格子

KB今天很开心,跟局长玩起了跳格子的游戏,游戏规则是这样的。

局长在地上连续的画了很多的格子,格子编号依次为1,2,3,…,n

KB会玩一轮游戏,每次站在一个编号为n的格子上,KB每次的跳跃非常讲究,如果这个数字是奇数,那么KB下一次会调到3n+1的位置,如果这个位置是偶数,那么KB将会跳跃到n/2的位置,不停的这样跳,局长看的有些无聊,局长想知道究竟要跳多少次才能跳到1。



输入

第一行一个整数T

第二行是T个正整数n

1 <= T <= 100

1 <= n <= 1000



输出

对于每一个n,每行输出一个数s,表示KB在编号为n的格子上跳多少步会跳到1,如果n无法跳到1,则输出-1.



样例输入

3
1 2 3



样例输出

0
1
7



版权声明:本文为weixin_42183401原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。