解题思路:
注意事项:
参考代码:
def check(n,k):#N进制转十进制
ans=0
pro=1#进制
while n!=0:
ans+=n%10*pro
n//=10
pro*=k#每一位都会多乘个k
return ans
def change(n,k):#十进制转N进制
s=''
q=[str(i) for i in range(10)]+[chr(65+i) for i in range(26)]
if n==0:
return 0
while n!=0:
d=n%k
s+=q[d]
n//=k
return s[::-1]
n=int(input())
k=10
p={}#字母表
b=[]#放数
st=[]#记录操作
cnt=1
for i in range(26):
p[chr(65+i)]=10+i
for i in range(1,n+1):
s=input()
if s=='CLEAR':
a=0
st=[]
elif s.startswith('NUM'):
c=list(p.keys())
if s[4] not in c:
b.append(check(int(s[4:]),k))
else:
b.append(check(int(p[s[4]]),k))
if len(b)==1:
a+=b[0]
elif s.startswith('CHANGE'):
k=int(s[7:])
elif s=='ADD':
st.append('ADD')
elif s=='MUL':
st.append('MUL')
elif s=='DIV':
st.append('DIV')
elif s=='MOD':
st.append('MOD')
elif s=='EQUAL':
if len(st)==0:
print(0)
break
else:
for i in st:
if i=='ADD':
a+=b[cnt]
cnt+=1
elif i=='MUL':
a*=b[cnt]
cnt+=1
elif i=='DIV':
a//=b[cnt]
cnt+=1
elif i=='MOD':
a%=b[cnt]
cnt+=1
print(change(a,k))
0.0分
0 人评分
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:665 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:561 |
多输入输出练习1 (C语言代码)浏览:1219 |
程序员的表白 (C语言代码)浏览:706 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:897 |
三角形 (C语言代码)浏览:965 |
愚蠢的摄影师 (C++代码)浏览:980 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:438 |
淘淘的名单 (C语言代码)浏览:1309 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:725 |