解题思路:
注意事项:
参考代码:
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语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:583 |
C语言训练-求矩阵的两对角线上的元素之和 (C语言代码)浏览:598 |
多输入输出练习1 (C语言代码)浏览:1178 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:1327 |
【求[X,Y]内被除3余1并且被除5余3的整数的和】 (C语言代码)浏览:673 |
矩形面积交 (C++代码)浏览:1127 |
剪刀石头布 (C++代码)浏览:1703 |
C二级辅导-阶乘数列 (C语言代码)浏览:508 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:342 |
剪刀石头布 (C语言代码)浏览:1432 |