求大神帮忙,最大位数不超过 4000000 位,该如何处理
求大神帮忙,最大位数不超过 4000000 位
火星明年举办火星杯足球赛;每一个足球队的队员人数要求刚好11;有很多很多的人要求参加比赛,你能不能刚好让每个人都能参加比赛? 约束条件:(1)一个人能够参加比赛的条件是他刚好是11个人之一;(2)一个人只能参加一支球队;
每一行只有一个正整数n, 表示人数; (n 可能很大, 但最大位数不超过 4000000 位);
对于每一个n, 独立一行输出答案;每个人都能参加比赛, 输出 YES; 否则输出 NO;
Sample Input
11
121
1
2
Sample Output
YES
YES
NO
NO
Hint: 输入尽量用 scanf 或者 gets() 等, 因为cin 可能会TLE;
------解决思路----------------------
这是十进制数对11求余数 如果余数为0
则 输出 YES否则输出NO
可以把 数据按照 两个字符一段转换成 int 求和,和是十一的倍数 则余数为0
4000000 分段后 恰好是2000000 每段最大是 99
99* 2000000
对于32Bits
int 为 200000000- 2000000 没有溢出.
------解决思路----------------------
奇数位 与 偶数位 的数字分别相加求差,如果差值可被 11 整除,则该数可以被 11 整除。
如果一边求和一边对 11 求模,多少位都不会溢出。
火星明年举办火星杯足球赛;每一个足球队的队员人数要求刚好11;有很多很多的人要求参加比赛,你能不能刚好让每个人都能参加比赛? 约束条件:(1)一个人能够参加比赛的条件是他刚好是11个人之一;(2)一个人只能参加一支球队;
每一行只有一个正整数n, 表示人数; (n 可能很大, 但最大位数不超过 4000000 位);
对于每一个n, 独立一行输出答案;每个人都能参加比赛, 输出 YES; 否则输出 NO;
Sample Input
11
121
1
2
Sample Output
YES
YES
NO
NO
Hint: 输入尽量用 scanf 或者 gets() 等, 因为cin 可能会TLE;
------解决思路----------------------
这是十进制数对11求余数 如果余数为0
则 输出 YES否则输出NO
可以把 数据按照 两个字符一段转换成 int 求和,和是十一的倍数 则余数为0
4000000 分段后 恰好是2000000 每段最大是 99
99* 2000000
对于32Bits
int 为 200000000- 2000000 没有溢出.
------解决思路----------------------
奇数位 与 偶数位 的数字分别相加求差,如果差值可被 11 整除,则该数可以被 11 整除。
如果一边求和一边对 11 求模,多少位都不会溢出。