ZCMU—1605

    xiaoxiao2021-12-14  16

    1605: 大一下之小试身手

    Time Limit: 1 Sec  Memory Limit: 128 MB [Submit][Status][Web Board]

    Description

    在浙江中医药大学的半年学习,你看起来帅了很多,这个时候你已经看不上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运算的结果)

    Input

    只有上述两种输入(数据在Long long 内)

    Output

    输出正确的答案

    Sample Input

    print 54*1 print "Tomcat"*2

    Sample Output

    54 TomcatTomcat

    【分析】

    细节题...重新写了一下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; } } } } }

    转载请注明原文地址: https://ju.6miu.com/read-970826.html

    最新回复(0)