这是本渣渣的第一篇题解,不喜勿喷。
思路:先定义一个变量j=0。输入的bool里面如果为一就让j自增,如果为零就让j清零。
在j自增的时候,如果发现j为1,3,7,30,120,365就让ans(答案)+=对应等级,j同样自增,不变为对应等级。
学会了or学废了?
代码:(在思路的基础上有做调整)
#include<bits/stdc++.h>
using namespace std;
bool a[1000000];
int main()
{
int n,lv[6];
cin>>n;
for(int i=0;i<6;i++)
{
cin>>lv[i];
}
int ans=0,j=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
if(a[i]==1)
{
int w=0;
j++;
if(j==1)
w=lv[0];
if(j==3)
w=lv[1];
if(j==7)
w=lv[2];
if(j==30)
w=lv[3];
if(j==120)
w=lv[4];
if(j==365)
w=lv[5];
ans+=w;
}
else
j=0;
}
cout<<ans;
return 0;
}
中间那段判断条件是可以用switch代替的。