死肥宅的冲分计划
死肥宅的冲分计划
https://ac.nowcoder.com/acm/contest/6441/B
模拟题
一个很细节的模拟题
刚开始还真没想明白,事后看了大佬的题解才慢慢看懂quq
1.首先就是注意输入,因为题目规定了每次输入十个数,多组输入,这里用字符串会稍微麻烦一点点,所以直接在开头先输入一个数,要注意处理到文件末尾,后面再输入9个数
2.因为死肥宅目前的段位是黄金在,段位上面显示是第三个段位,所以我们可以初始化一个变量让他等于3,之后我们遍历数组,只要当前数组的元素为1,且他最大是6(星耀),因为王者段位不可再往上加数了,因为一旦加数,如果掉段的话那就那还是王者,很显然不符合生活逻辑,同理如果是7并且是要大于白银段位的,不然就会越界,处理完这些问题之后,题目就可以解决了
输入细节处处理
1.首先一定要处理到文件末尾
2.可以字符串整行输入,也可以先输入一个数再输入9个数,也可以一个一个输入,每输入一个数就判断一次直到输入十个数为止
方法一
#include <bits/stdc++.h> using namespace std; typedef long long ll; int a[1000]; int main() { while (~scanf("%d", &a[0])) { for (int i = 1; i < 10; ++i) scanf("%d", &a[i]); int ans1 = 3; //当前段位 for (int i = 0; i < 10; ++i) { if (a[i] == 1 && ans1 <= 6) //不能越界上级 ++ans1; else if (a[i] == 7 && ans1 >= 2) //同理 --ans1; } if (ans1 == 7) puts("666"); else puts("777"); } return 0; }
方法二:
#include <bits/stdc++.h> using namespace std; int main() { int c = 0, a, ans = 3; while (~scanf("%d", &a)) { c++; if (a == 1 && ans < 7) ans++; if (a == 7 && ans > 1) ans--; if (c == 10) { if (ans == 7) printf("666\n"); else printf("777\n"); ans = 3, c = 0; } } return 0; }
牛客课后习题题解 文章被收录于专栏
等待蜕变