招商银行笔试题 公司年会
轉載于:https://blog.csdn.net/zhui_xiuge/article/details/79867984
某公司年會上,組織人員安排了一個小游戲來調節氣氛。游戲規則如下:
N個人參與游戲,站成一排來搶工作人拋來的M個小玩偶。為了增加游戲的趣味和難度,規則規定,參與游戲的人搶到的禮物不能比左右兩邊的人多兩個或以上,否則會受到一定的懲罰。游戲結束時擁有玩偶最多的人將獲得一份大獎。
假設大家都想贏得這份大獎,請問站在第K個位置的小招在贏得游戲時,最多能擁有幾個玩偶?
解答:
? ? ? ??
https://www.nowcoder.com/questionTerminal/1bca71cd733048f890d36724f3c695eb?orderByHotValue=1&page=1&onlyReference=false
來源:牛客網
位置k的小朋友領p顆糖果,理想情況下越靠邊的人比k位置的小朋友少一顆糖,正好領完m顆糖,即曲線陰影部分為m,加上直線陰影部分的糖果數s=((n - k + 1)(n - k) /2) + (k (k - 1) /2)等于n*p,即長方形的面積。
如果多出來i顆糖果的話,顯然只需要考慮i小于n了,否則每個人就能多發一顆糖果還能有剩。這i顆糖果已經不能發給k位置的小朋友了,只能從邊上開始發,一人一顆。那反過來求得的p就是代碼中的 (m + s - i) / n。
代碼:
#include <iostream> using namespace std;
int main()
{
? ? int n, m, k;
? ? cin >> n >> m >> k;
? ? ? ?if (n && (k>=1 && k<=n))
? ? ? {
? ? ? ? ? ?int s = ((n - k + 1)*(n - k) >> 1) + (k * (k - 1) >> 1); //*、+優先級大于>>
? ? ? ? ? ?for (int i = 0; i < n; i++)
? ? ? ? ? {
? ? ? ? ? ? ? if ((m + s - i) % n == 0)
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?cout << (m + s - i) / n << '\n'; break;
? ? ? ? ? ? }
? ? ? ? ?}
? ??}
? ? ?else cout << "0" << '\n';
? ? return 0;
}
?
總結
以上是生活随笔為你收集整理的招商银行笔试题 公司年会的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python opc
- 下一篇: Lattice LSTM