在浙江中医药大学的半年学习,你看起来帅了很多,这个时候你已经看不上A+B了,现在你喜欢用你的代码去模拟你看到一切的事物。有一天你发现了一门神奇的语言那就是python,比如print “xxxx”*100,就可以把”xxxx”连续输出一百遍… 这个时候你表示不服,我的C语言也可以,不就是多写一个循环而已么。不开心的你于是决定用C模拟Python解释器,考虑到… 其实也没啥,现在我告诉你Python的一些常用的运算符号和规则,你来做个解释器,恩,就这样。
在Python里 “*”,”+”,”/”, ”-”,”%” 和C语言一样
“**”表示幂运算,比如2**3==8
给你的语句如下:
Print string * num(string表示一个字符串,num表示一个数)
Print a operator b ( 输出a ,b经过operator运算的结果)
只有上述两种输入(数据在Long long 内)
输出正确的答案
【分析】
细节题...重新写了一下2Y....果然自己的细节处理还不够啊..还需要努力
题意没什么好说的...
个人建议,这种题目,格式越好,越容易1Y
【代码】
#include <stdio.h> #include <string.h> int main() { char s[10000]; while (~scanf("%s",s)) { scanf("%s",s); if (s[0]=='"') { char c[10000]={0}; int i=1; while (s[i]!='"') { c[i]=s[i]; i++; } int len=i; int sum=0; i+=2; for (;i<strlen(s);i++) { sum=sum*10+s[i]-48; } for (int j=0;j<sum;j++) for (int p=1;p<len;p++) printf("%c",c[p]); printf("\n"); } else { int i=0; long long a=0; int q=1; if (s[i]=='-') { q=-1;i++; } while (s[i]>='0' && s[i]<='9') { a=a*10+s[i]-48; i++; } a*=q; int j=i+1;if (s[j]=='*')j++; long long b=0; q=1; if (s[j]=='-') { q=-1;j++; } for (;j<strlen(s);j++) b=b*10+s[j]-48; b*=q; if (s[i+1]=='*') { if (b==0) printf("1\n"); else { long long c=a; for (int p=1;p<b;p++) a*=c; printf("%lld\n",a); } } else { switch (s[i]) { case '*':a*=b; printf("%lld\n",a); break; case '+':a+=b; printf("%lld\n",a); break; case '/':a/=b; printf("%lld\n",a); break; case '-':a-=b; printf("%lld\n",a); break; case '%':a%=b; printf("%lld\n",a); break; default:break; } } } } }
