2020.2.19GDUT寒假训练排位赛1-B
B — MooBuzz
题目大意: 【2020.2.19GDUT寒假训练排位赛1-B】农夫约翰的奶牛玩数字游戏“FizzBuzz”。这个游戏的规则很简单:站成一圈,奶牛依次从一开始向上数,每头奶牛轮到自己时说一个数字。如果一头奶牛达到了3的倍数,她应该说“Fizz”而不是这个数字。如果一头奶牛达到了5的倍数,她应该说“Buzz”而不是这个数字。如果一头牛达到15的倍数,她应该说“FizzBuzz”而不是这个数字。因此,游戏的第一部分是:1、2、Fizz、4、Buzz、Fizz、7、8、Fizz、Buzz、11、Fizz、13、14、FizzBuzz、16
由于词汇量稍微有限,奶牛玩的FizzBuzz的版本包括说“Moo”,而不是Fizz、Buzz和FizzBuzz。因此,牛版游戏开始了1、2、Moo、4、Moo、Moo、7、8、Moo、Moo、11、Moo、13、14、Moo、16
给定N(1≤N≤109),请确定游戏中说出的第N个数字。测试用例2-5满足N≤106
输入
一个正整数N
输出
第N个数字
文章图片
题目分析: 直接暴搜会超时。找出规律:
1、2、Moo、4、Moo、Moo、7、8、Moo、Moo、11、Moo、13、14、Moo
16、17、Moo、19、Moo、Moo、22、23、Moo、Moo、26、Moo、28、29、Moo
…
每15个里就有8个数字,所以只需要看N与8的关系
代码实现:
#include
#include using namespace std;
int num[8] = {1,2,4,7,8,11,13,14};
int main()
{
int n;
cin >> n;
int p = n/8;
int q = n%8;
if(q==0){
q = 8;
p--;
}
int ans = p*15+num[q-1];
cout << ans << endl;
return 0;
}
最后希望路过的dl给予改进建议!
推荐阅读
- 绘本讲师训练营【24期】14/21阅读原创《小黑鱼》
- 绘本讲师训练营【18期】14/21《我的情绪小怪兽》故事会新体验
- 合理情绪疗法之试用|李克富思维训练营56/90
- 绘本讲师训练营7期9/21阅读原创《蜗牛屋|绘本讲师训练营7期9/21阅读原创《蜗牛屋 》
- 拆书方法训练营
- 阿菘的ScalersTalk第五轮新概念朗读持续力训练Day15|阿菘的ScalersTalk第五轮新概念朗读持续力训练Day15 20191025
- 特种兵训练第四天
- 2018-09-03(李克富视角点评训练营81/90)|2018-09-03(李克富视角点评训练营81/90) 那只蛙从“井”爬出来又进入了“隧道”
- 学员+3组杨子涓+202002RIA训练营W3D2+苏格拉底提问法
- 绘本讲师训练营【28期】15/21阅读原创《活了100万次的猫》