猫史档案馆


征集正确答案

用户:炼金树枝炼金树枝查看:0 回复:7 评论:0 创建时间:2020-06-21T16:02:59


通天塔里有很多我们验证正确的,但系统不让过的题

在评论区里可发出题目,请教各位细心的人


回复

上一页1 页 / 共 1下一页
炼金树枝炼金树枝

center_image

题目:

编程猫,终于熬到了数学最后一题的时刻,但是眼前都是一堆杂乱的加减算式,显然成功就在眼前了。可是他脑细胞和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


评论


炼金树枝炼金树枝

center_image

题目:

若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。

例如:给定一个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


评论


炼金树枝炼金树枝

center_image

题目:

在你的帮助下,小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


评论


炼金树枝炼金树枝

center_image

题目:

阿短发现了一种方程如下图所示:

举例而言,当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


评论


炼金树枝炼金树枝

center_image

题目:

某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前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


评论


炼金树枝炼金树枝

center_image

题目:

给出一个整数 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


评论


炼金树枝炼金树枝

还有十多题,如果上面能让大家讨论起来,我再发。

点赞0


评论