规律数贝壳
题目:https://ac.nowcoder.com/acm/contest/9752/C
import java.util.*;
public class Solution {
/**
* @param n int整型
* @param p int整型
* @param q int整型
* @return int整型
*/
public int Gameresults(int n, int p, int q) {
if (q == p) { //若果两个相同,按照规律,只要总贝壳能够整除牛牛+1,那么不论怎么排,都是牛妹赢
if (n % (p + 1) == 0) {
return -1;
}
else return 1;
}
if (p >= n) {
return 1;
} else if (q >= n) {
return -1;
}
if (p > q) {
return 1;
} else {
return -1;
}
}
}首先是做过的巅峰赛最简单的C题,但是也要花费一些周折。首先如果不太理解这个规律的话,自己能想到的:如果p或q大于n那么可以直接得出结果。那如果pq不相同时,就要开始寻找规律了,那么可以把n设置成5,小一些的数比较好找,如果是1 2的话那肯定是牛妹,如果是2 3,那么就是牛牛胜,这两个是不同的情况,所以只需要研究一种情况就可以了。
所以呢可以研究p>q,那肯定是数量多的占优势,谁大谁赢,就不多说。当q=p,那么就要找到对应的规律了,可以找到如果n%(p+1)==0,那么牛妹必胜。