题目传送门
思路提供
这只是一道简单的模拟
我们只需要对于 .
, -
, (
,)
进行特判即可,但是还是要注意对每个数的定义类型防止出现错误。
AC code
#include<bits/stdc++.h>
using namespace std;
int n,h,len,ans,k;
double t,m;
string ch[105];//用string比char方便一点(本人是这么觉得的)
double o(int x){//因为有返回值是浮点型所以要加上double
if(x==0) return 1.0;
if(x==1) return 0.5;
if(x==2) return 0.25;
if(x==3) return 0.125;
}
int main(){
cin>>n>>t;
while(cin>>ch[h]){//用while进行输入
int len=ch[h].size();
for(int i=0;i<len;i++){
if(ch[h][i]!='.' && ch[h][i]!='(' && ch[h][i]!=')') m+=o(k);
if(ch[h][i]=='(') k++;
if(ch[h][i]==')') k--;
if(ch[h][i]=='.'){
if(ch[h][i-1]=='-') m+=1.0;
else m+=o(k)*0.5;
}
}//以上就是各种特判,是主要代码
h++;
}
ans=(m*60.0)/t;
cout<<ans;
return 0;
}
标签:ch,return,string,int,double,len,P2614,计算器,弹琴
From: https://www.cnblogs.com/is-02/p/17686678.html