洛谷 P1449 后缀表达式
这道题需要手动模拟栈的操作。读入字符,当字符不为终止字符@时,如果读入的是数字就用now记录下它的值,如果读入的是 . 就将得到的数字值放到栈顶,并清空now。当读到运算符时,就拿栈顶元素下面的第一个元素和栈顶元素进行加减乘除的操作,并将栈顶清空,元素退栈,最后输出栈内剩下的唯一元素即可。要用long long
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long ans[1010];
int main()
{
long long len=0,now=0;
char ch;
while((ch=getchar())!='@')
{
if(ch>='0'&&ch<='9')
{
now*=10;
now+=ch-'0';
}
else if(ch=='.')
{
ans[++len]=now;
now=0;
}
else if(ch=='+')
{
ans[len-1]+=ans[len];
ans[len]=0;
len--;
}
else if(ch=='-')
{
ans[len-1]-=ans[len];
ans[len]=0;
len--;
}
else if(ch=='*')
{
ans[len-1]*=ans[len];
ans[len]=0;
len--;
}
else if(ch=='/')
{
ans[len-1]/=ans[len];
ans[len]=0;
len--;
}
}
cout<<ans[1]<<endl;
return 0;
}
洛谷P1914 小书童——密码
水题 然而放上来的原因是因为第一次我忘了取mod。。。记得读入字符后将其变为数字加上n后取mod
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n;
cin>>n;
char ch;
while(cin>>ch)
{
int ans=ch-'a'+n;
ans%=26;
printf("%c",ans+'a');
}
return 0;
}
洛谷 P2614 计算器弹琴
题目比较繁琐,然而仔细想想还是能模拟出来的。我这道题是读入字符来解决的,以空格为界限(读入字符串也可以,不过如果懒得转换的话这道题给的n是没有用的)。记录下没读到空格时字符的长度,并初始化w=0.对每个字符进行处理,如果读到空格或换行就无视,如果读到“(”就代表音符拍子要变为原来的二分之一,也就是给w++。对于“)”同理w--。如果读到的是延长字符“.”,就把记录节拍答案的变量加上自身的二分之一,如果是其他的情况就加上二分之一的w次方。最后输出整型,算得一共要多少秒演奏完曲子。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
char a[110];
double time=0;
int main()
{
int n,t,len,w=0;
cin>>n>>t;
for(;scanf("%s",&a)==1;)
{
len=strlen(a);
w=0;
for(int j=0;j<len;j++)
{
switch(a[j])
{
case ' ':
case '\n':
case '\r':
case '(':w++;break;
case ')':w--;break;
case '.':time+=pow(0.5,w+1);break;
default:time+=pow(0.5,w);
}
}
}
int ans=60*time/t;
cout<<ans<<endl;
return 0;
}
洛谷P1538 迎春舞会之数字舞蹈
https://blog.csdn.net/QiaoRuoZhuo/article/details/52227422
将数字的七个组成部分记录并打印,注意k的大小。
(To be continued...)
扫描二维码关注公众号,回复:
2341281 查看本文章