解题思路:
注意事项:
参考代码:
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 人评分
循环入门练习6 (C语言代码)浏览:969 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:616 |
用筛法求之N内的素数。 (C语言代码)浏览:531 |
IP判断 (C语言代码)浏览:539 |
简单的a+b (C语言代码)浏览:504 |
1202题解浏览:628 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:514 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:496 |
IP判断 (C++代码)浏览:754 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:629 |