死肥宅的冲分计划

死肥宅的冲分计划

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;
}
牛客课后习题题解 文章被收录于专栏

等待蜕变

全部评论

相关推荐

白菜小丑呜呜:Radis写错了兄弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务