用户:炼金树枝查看:0 回复:7 评论:0 创建时间:2020-06-21T16:02:59
通天塔里有很多我们验证正确的,但系统不让过的题
在评论区里可发出题目,请教各位细心的人
题目:
编程猫,终于熬到了数学最后一题的时刻,但是眼前都是一堆杂乱的加减算式,显然成功就在眼前了。可是他脑细胞和RP已经消耗殆尽,所以这个重要的任务就交给你们啦。
输入格式
一行,包含一个字符串形式的加减法多项式(每一项数字范围为0-32767)。
输出格式
一个整数,为计算所得的结果
示例1
输入:
1+2-3
输出:
0
我的代码,但没通过:
s=input()
s=s+"+"
s0=0
a=""
h="+"
for i in range(len(s)):
if s[i]=="+" or s[i]=="-":
#print(s[i],h)
s0=s0+int(a)
h=s[i]
a=""
elif s[i]==" ":
pass
a+=s[i]
print(s0)点赞0
评论
题目:
若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。
例如:给定一个10进制数56,将56加56(即把56从右向左读),得到121是一个回文数。
又如:对于10进制数87:
STEP1:87+78 = 165
STEP2:165+561 = 726
STEP3:726+627 = 1353
STEP4:1353+3531 = 4884
在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。
写一个程序,给定一个N(2<=N<=10,N=16)进制数M,求最少经过几步可以得到回文数。如果在30步以内(包含30步)不可能得到回文数,则输出“Impossible!”
输入格式
两行,分别是N,M。
输出格式
STEP=ans
示例1
输入:
10
87
输出:
STEP=4
我的代码,但没通过:
def jzzh(v1, N):
if v1==0:
return "0"
if N==16:
return hex(v1)[2:]
s=""
v=v1
while v!=0:
s=str(v%N)+s
v=v//N
return s
#print(jzzh(16,16))
n=int(input())
m=input()
ans=0
while ans<=30:
ans+=1
m1=m[::-1]
k=int(m,n)+int(m1,n)
#print(ans, k)
k0=jzzh(k, n)
k1=k0[::-1]
if k0==k1:
break
m=k0
if ans<=30:
print("SETP="+str(ans))
else:
print("Impossible!")
点赞0
评论
题目:
在你的帮助下,小A成功收集到了宝贵的数据,他终于来到了传说中连接通天路的通天山。但是这距离通天路仍然有一段距离,但是小A突然发现他没有地图!!!但是幸运的是,他在山脚下发现了一个宝箱。根据经验判断(小A有经验吗?),地图应该就在其中!在宝箱上,有三根柱子以及在一根柱子上的n个圆盘。小A在经过很长时间判断后,觉得这就是hanoi塔!(这都要琢磨)。但是移动是需要时间的,所以小A必须要通过制造延寿药水来完成这项任务。现在,他请你告诉他需要多少步完成,以便他造足够的延寿药水.。时限1s。
(这题简单)
输入格式
一个数n,表示有n个圆盘
输出格式
一个数s,表示需要s步。
示例1
输入:
15
输出:
32767
我的代码,但没通过:
def f(n):
if(n<=1):
return 1
else:
return 2*f(n-1)+1
n=int(input())
print(f(n))
点赞0
评论
题目:
阿短发现了一种方程如下图所示:
举例而言,当D=10时,要使这个等式成立,x的最小值是19,此时y的值为6。
对于D= {2, 3, 5, 6, 7}时,如果分别求出x取最小值的解,我们得到:
D=4时,不存在x的正整数解。
因此,对于当D = 5时,x的最小值为9,此时的y值为4。
训练师,输入D的值,你能算出x的最小值是多少吗?此时的y值又是多少呢?
输入格式
一个整数D。
输出格式
一行两个整数x和y,中间用空格隔开。
示例1
输入:
10
输出:
19 6
我的代码,但没通过:
import math
d=int(input())
x=1
while True:
y=int(math.sqrt((x*x-1)//d))
if y!=0 and x*x-d*y*y==1:
print(x,y)
break
x+=1
if x>d*2:
print("不存在x的正整数解。")
break
点赞0
评论
题目:
某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。
任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。
输入格式
第1行为一个正整数n,表示该校参加评选的学生人数
第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到100之间.第i行的3个数字依次表示学号为i-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1~n。
输出格式
输出共有5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。
示例1
输入:
8
80 89 89
88 98 78
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
输出:
8 265
2 264
6 264
1 258
5 258
我的代码,但没通过:
n=int(input())#6
m=[]#[1,2,3,4,5,6]
l=[]#[3,6,9,12,15,18]
for i in range(n):
a=map(int,input().split())
b=sum(a)
m.append(i+1)
l.append(b)
for i in range(len(l)-1):
for j in range(i+1, len(l)):
if l[i]<l[j] or (l[i]==l[j] and m[i]>m[j]):
l[i],l[j]=l[j],l[i]
m[i],m[j]=m[j],m[i]
for i in range(5):
print(m[i], l[i])
点赞0
评论
题目:
给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15)。
规则:
一位数可变换成另一个一位数:
规则的右部不能为零。
例如:n=234。有规则(k=2):
2-> 5
3-> 6
上面的整数 234 经过变换后可能产生出的整数为(包括原数):
234
534
264
564
共 4 种不同的产生数
问题:
给出一个整数 n 和 k 个规则。
求出:
经过任意次的变换(0次或多次),能产生出多少个不同整数。
仅要求输出个数
输入格式
键盘输人,格式为:
n k
x1 y1
x2 y2
... ...
xn yn
输出格式
1个整数(满足条件的个数)
示例1
输入:
234 2
2 5
3 6
输出:
4
我的代码,但没通过:
n,k=input().split()
k=int(k)
c=[]#['2','5'],['3','6']]
for i in range(k):
b=input().split()
c.append(b)
def th(n,b):
n1=n.replace(b[0],b[1])
return n1
v=[]
for j in range(2**k):
d=k*"0"+bin(j)[2:]
d=d[-k:]
m=n
for l in range(len(d)):
if d[l]=="1":
m=th(m,c[l])
if m not in v:
v.append(m)
print(len(v))
点赞0
评论