zoukankan      html  css  js  c++  java
  • Python语言上机题实现方法(持续更新...)

    Python语言上机题实现方法(持续更新...)

    1.【字符串循环左移】给定一个字符串S,要求把S的前k个字符移动到S的尾部,如把字符串“abcdef”前面的2个字符‘a’、‘b’移动到字符串的尾部,得到新字符串“cdefab”,称作字符串循环左移k位。输入格式:输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。输出格式:在一行中输出循环左移N次后的字符串。

    输入样例:

    abcd
    2
    

    输出样例:

    cdab
    

    代码】:

    a = input()
    N = int(input())
    b = a[0:N]
    c = a[N:len(a)] + b
    print(c)
    

    2.【最后一个单词】计算字符串最后一个单词的长度,单词以空格隔开。输入格式:一行字符串,非空,长度小于5000。输出格式:整数N,最后一个单词的长度。

    输入样例:

    hello world
    

    输出样例:

    5
    

    【代码】:

    a = input()
    b = a.split(" ")
    c = b[len(b)-1]
    print(len(c))
    

    3.【计算字符个数】接受一个由字母和数字组成的字符串,和一个字符,然后输出输入的字符串中含有该字符的个数。不区分大小写。输入格式:输入一个由字母和数字组成的字符串,和一个字符,以空格隔开。输出格式:输出输入的字符串中含有该字符的个数。

    输入样例:

    a1234bcdef a
    

    输出样例:

    1
    

    【代码】:

    a = input()
    b = a.split(" ")
    c = b[0]
    d = b[1]
    k = 0
    for i in c:
      if (i == d[0]):
         k = k + 1
    print(k)
    

    4.【圆的周长与面积】给出一个圆的半径,求出圆的周长和面积。输入格式:输入包含一个整数r,表示圆的半径。输出格式:输出一行,包含2个数,分别是圆的周长、面积,用空格分隔开,数字保留小数点后4位。提示:使用 round(a,4) 函数保留4位小数,规定pi=3.14159。

    输入样例:

    3
    

    输出样例:

    18.8495 28.2743
    

    【代码】:

    r = int(input())
    pi = 3.14159
    c = float(2 \* pi \* r)
    s = float(pi \* r \* r)
    print(round(c, 4), round(s, 4))
    

    5.【三角形面积】由三角形的三边长,求其面积。规定:输入的三条边一定能构成三角形,不用进行判定。提示:a,b,c小于1000由三角形的三边a,b,c求面积可以用如下的公式:其中p=(a+b+c)/2,面积=S=√[p(p-a)(p-b)(p-c)]。请使用![img](file:///C:/Users/谷锦涛/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)来保留小数。输入格式:三行,每行一个整数。输出格式:一个实数,保留两位小数。

    输入样例:

    3
    4
    5
    

    输出样例:

    6.00
    

    【代码】:

    import math
    a = int(input())
    b = int(input())
    c = int(input())
    p = float((a + b + c) / 2)
    s = p * (p - a) * (p - b) * (p - c)
    print("%.2f" % math.sqrt(s))
    

    6.【等差数列末项计算】给出一个等差数列的前两项a1,a2,求第n项是多少。输入格式:三行,包含三个整数a1,a2,n。输出格式:一个整数,即第n项的值。
    输入样例:

    输出样例:

    1
    4
    100
    

    输出样例:

    298
    

    【代码】:

    a1 = int(input())
    a2 = int(input())
    n = int(input())
    x = a1 + 3 * n -3
    print(x)
    

    7.【分割数字】编写一个程序,提示用户输入四位整数并以反向顺序显示。
    输入格式:一个四位的整数。输出格式:四个一位整数,在同一行输出,空格分隔,结尾无空格。
    【提示】:将各位上的数字分离后按照输出格式组成字符串,最后用字符串处理函数去掉拼接后字符串末尾的空格,以保证结尾无空格。

    输入样例:1234
    输出样例:4 3 2 1
    

    【代码】:

    a = input()
    b = ""
    c = a[::-1]
    print(c)
    d = " "
    for i in c:
        b += i
    print(d.join(b))
    

    8.【进制间的转换】输入一个十进制数,分别输出其对应的二进制、八进制、小写十六进制和大写十六进制方式。(比如用户输入123,程序运行输出1111011, 173, 7b, 7B)

    【代码】:

    a = int(input())
    print(bin(a).replace('0b',''))
    print('%o' % a)
    print('%x' % a)
    print("%X" % a)
    

    9.【合并两个列表并去重】 输入两个列表alist和blist,要求列表中的每个元素都为正整数且不超过10,合并alist和blist,并将重复的元素去掉后输出一个新的列表clist。

    输入格式:共两行,每一行都用来输入列表中的元素值,以空格隔开。

    输出格式:共一行,以列表形式打印输出。

    输入样例:

    1 2 3
    4 3 2
    

    输出样例:

    [1,2,3,4]
    

    代码】:

    alist = list(map(int,input().split(" ")))
    blist = list(map(int,input().split(" ")))
    clist = []
    clist = alist + blist
    dlist = []
    for i in clist:
      if i not in dlist:
         dlist.append(i)
    print(dlist)
    

    10.【列表反转】输入一个列表,将其反转后输出新的列表。输入格式:共一行,列表中的元素值,以空格隔开。输出格式:共一行,为一个列表

    输入样例:

    123 234 456
    

    输出样例:

    [456,234,123]
    

    【代码】:

    a = list(map(int,input().split(" ")))
    a.reverse()
    print(a)
    

    11.【列表元素绝对值排序】输入一个列表,要求列表中的每个元素都为整数;将列表中的所有元素按照它们的绝对值大小进行排序,绝对值相同的还保持原来的相对位置,打印排序后的列表(绝对值大小仅作为排序依据,打印出的列表中元素仍为原列表中的元素)。

    输入格式:输入共一行,列表中的元素值,以空格隔开。输出格式:输出共一行,为一个列表。

    输入样例:

    -2 1 3
    

    输出样例:

    [1,-2,3]
    

    【代码】:

    a = list(map(int,input().split(" ")))
    print(sorted(a, key=abs))
    

    12.【投资额】假如你想将一笔钱以固定年利率存入账户。如果你希望三年之后账户中有5000元,在需要存入多少钱?使用下面的公式可以算出初始存款,编写一个程序,提示用户输入最终金额值、百分比表示的年利率以及年数,然后显示最初存款额。输入格式:最终金额值、百分比表示的年利率以及年数,输入下一项需换行。输出格式:最初存款额(注意:计算后保持原样输出,不要保留小数位数)

    ![img](file:///C:/Users/谷锦涛/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)

    输入样例:

    1000
    4.25
    5
    

    输出样例:

    808.8639197424636
    

    【代码】:

    a = float(input())
    b = float(input())
    c = float(input())
    sum = 0
    x = pow((1 + ((b *0.01) / 12)),c * 12)
    sum = a / x
    print(sum)
    

    13.【凯撒密码解密】首先接收用户输入的加密文本,然后对字母a-z和字母A-Z按照密码算法进行反向转换,同时输出。(加密的密码算法:将信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即原文字符A将被替换为D、原文字符B将被替换为E、原文字符C将被替换为F,以此类推,本题要求根据此密码算法实现反向转换,比如用户输入密文:Wklv lv dq hafhoohqw Sbwkrq errn.程序输出:This is an excellent Python book.)

    【代码】:

    a = input()
    for p in a:
      if "a" <= p <= "z":
         print(chr(ord("a")+(ord(p)-ord("a")-3) % 26), end='')
      elif "A" <= p <= "Z": 
         print(chr(ord("A")+(ord(p)-ord("A")-3) % 26), end='')
      else:
         print(p, end='')
    

    14.【列表综合练习1】现有如下列表,请按照之后的要求完成题目:

    L=[“apple”,”banana”,”orange”,”cherry”,”watermelon”,”lemon”,“grape”,“pomegranate”]

    (1)计算列表的长度并输出。

    【代码】:

    L = ["apple","banana","orange","cherry","watermelon","lemon","grape","pomegranate"]
    print(len(L))
    

    (2)请通过步长获取索引为3的倍数的所有值,并打印获取后的列表L1。

    【代码】:

    L1 = L[::3]
    print(L1)
    

    (3)请在列表第三个位置和列表的最后,各插入1个任意元素,并删除列表中第6个元素,后自动输出新生成列表L2,并允许输入随机序号,显示选中的水果。

    【代码】:

    a = list(map(str,input().split(" ")))
    L2 = L
    L2.insert(3,a[0])
    L2.insert(len(L),a[1])
    L2.pop(6)
    print(L2)
    b = int(input())
    print(L2[b])
    

    (4)请将字符串str=“fruits”中的每一个元素添加到L2中,并删除L2中第1至3个元素,生成新列表L3,并输出。

    【代码】:

    b = input()
    L3 = L2
    for i in b:
      L3.insert(0,i)
    L3.pop(1)
    L3.pop(2)
    L3.pop(3)
    print(L3)
    

    14.【列表综合练习2】 写代码,有如下列表,按照要求实现每一个功能。Lis = [9,"hello" , "jack", ["rose", 250, ["kdf1", ["tsfat", 3, "1"]], 0], "cdfab", "addgfv"]

    (1)将列表Lis中的"d"变成大写。

    (2)将列表中的数字3变成字符串"whoo"

    (3)将列表中的字符串"tsfat"变成数字 100

    (4)在 "rose"前面插入字符串:"movie"

    (5)打印列表

    【代码】:

    Lis = [9,"hello","jack",["rose",250,["kdfl",["tsfat",3,"1"]],0],"cdfab","addgfv"]
    Lis[3][2][0] = Lis[3][2][0].replace('d','D')
    Lis[4] = Lis[4].replace('d','D')
    Lis[5] = Lis[5].replace('d','D')
    Lis[3][2][1][1] = "whoo"
    Lis[3][2][1][0] = 100
    Lis[3].insert(0,'movie')
    print(Lis)
    

    15.【列表操作】现有两个列表:a = [11, 22, 33];b = [22, 33, 44],编写程序要求分别实现如下功能:

    (1)获取内容相同的元素列表

    (2)获取a中有, b中没有的元素列表

    (3)获取b 中有,a中没有的元素列表

    (4)获取a 和 b 中内容不同的元素

    【代码】:

    a = [11,22,33]
    b = [22,33,44]
    c = []
    d = []
    e = []
    f = []
    for i in a:
      for j in b:
         if i == j:
           c.append(i)
    d = [i for i in a if not i in b]
    e = [i for i in b if not i in a]
    f = d + e
    print(c,d,e,f)
    

    16.编写Python程序计算下列数学表达式的结果并输出,小数点后保留3位,输出占10位,空位用‘*’填充,右对齐。

    \[x =sqrt((pow(3,4) + 5 + pow(6,7)) / 8) \]

    代码】:

    import math
    a = (pow(3,4) + 5 + pow(6,7)) / 8
    x = math.sqrt(a)
    print("%.3f" % x)
    

    17.补充程序,分别输出字符串s中汉字和标点符号的个数。

    s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"

    n = 0 #汉字个数

    m = 0 #标点符号个数

    ​ #在这里补充代码,可以多行

    print("字符数为{},标点符号数为{}。".format(n, m))


    【代码】:

    s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
    n = 0
    m = 0
    n = s.count(',') + s.count('?')
    m = len(s) - n
    print("字符数为{},标点符号数为{}。".format(m,n))
    

    18.通过键盘输入一串小写字母(a~z)组成的字符串,编写一个测试程序,将字符串中连续出现的重复字符删去(即在一个字符串中,如果遇到连续重复的字符只出现一次),然后输出处理后的字符串。例如:str1="aabbccddaabbccdd",输出结果为:"abcdabcd"。

    输入样例:aabcccccaaa
    输出样例:abca
    

    【代码】:

    str1=input()
    a=list(str1)
    b=a[0]
    c=[]
    c.append(b)
    for i in range(1,len(a)):
      if a[i]!=a[i-1]:
         x=a[i]
         c.append(x)
    for i in c:
      print(i,end="")
    

    19.编写程序,运行后输入任意长度正整数,然后输出每位上的数字,并且使用英文逗号分隔。例如输入123,输出1,2,3

    【代码】:

    Num1 = int(input())
    Num2 = []
    b = len(str(Num1))
    while(b != 0):
      a = Num1 % 10
      Num2.insert(0,str(a))
      Num1 = int(Num1 / 10)
      b = b-1
    Num3 = tuple(Num2)
    c = ","
    c.join(Num3)
    print(c.join(Num3))
    

    20.编写程序,从给定字符串中查找某指定的字符。

    输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。输出格式:如果找到,在一行内按照格式“index = 下标”(等号两边都有英文的空格)输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。

    输入样例1:                    输入样例2:
    m                            a
    programming                  1234
    输出样例1:                    输出样例2:
    Index = 7                    Not Found
    

    【代码】:

    a = input()
    b = input()
    s1 = list(b)
    if a in s1:
      print("index =",b.rindex(a))  
    else:
      print("Not Found")
    

    21.输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。

    输出格式:输出在第1行中输出字符串。如果它是回文字符串,在第2行中输出Yes,否则输出No。

    输入样例1:                          输入样例2:
    level                             1 + 2 = 2 + 1 =
    输出样例1:                          输出样例2:                  
    level                             1 + 2 = 2 + 1 =               
    Yes                               No
    

    【代码】:

    s1 = input()
    s2 = reversed(list(s1))
    if list(s1) == list(s2):
      print("Yes")
    else:
      print("No")
    

    22.【字典1】输入一个列表,要求列表中的每个元素都为正整数且列表包含的元素个数为偶数;将列表中前一半元素保存至字典的第一个键值1中,后一半元素保存至第二个键值2中。

    输入格式: 共一行,列表中的元素值,以空格隔开。输出格式:共一行,以字典的形式打印结果。
    输入样例:1 2 3 4
    输出样例:{'1': [1,2], '2': [3,4]}
    

    【代码】:

    a = list(map(int,input().split()))
    n = len(a)
    v1 = a[:int(len(a)/2)]
    v2 = a[int(len(a)/2):]
    print(dict({'1':v1,'2':v2}))
    

    23.【字典2】阅读下面这段文字

    Python includes two operations for sorting. The method sort() in the built-in list data type

    rearranges the items in the underlying list into ascending order, much like merge.sort(). In

    contrast, the built-in function sorted() leaves the underlying list alone; instead, it returns a new list containing the items in ascending order.

    理解上述文字后,对其进行词频统计,再按照词频和字典顺序排序

    提示1、词频是主关键字,字典顺序是次关键字 2、字典顺序不考虑大小写,可以使用字符串的lower方法

    【代码】:

    txt = "Python includes two operations for sorting. The method sort() in the built-in list data typerearranges the " \
         "items in the underlying list into ascending order, much like merge.sort(). Incontrast, the built-in function " \
         "sorted() leaves the underlying list alone; instead, it returns a new list containing the items in ascending " \
         "orderfor"
    words = txt.split()
    counts = {}
    for word in words:
      counts[word] = counts.get(word,0) + 1
    items = list(counts.items())
    items.sort(key=lambda x:x[1],reverse=True)
    for i in range(10):
      word,count = items[i]
      print("{0:<10}{1:>5}".format(word,count))
    

    24.【查验身份证】一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:

    Z:0 1 2 3 4 5 6 7 8 9 10

    M:1 0 X 9 8 7 6 5 4 3 2

    现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。输入格式:输入第一行给出正整数*N*(≤100)是输入的身份证号码的个数。随后*N*行,每行给出1个18位身份证号码。输出格式:

    按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出All passed。

    输入样例1:                   输入样例2:
    4                           2
    320124198808240056          320124198808240056
    12010X198901011234          110108196711301862
    110108196711301866          输出样例2:
    37070419881216001X          All passed
    输出样例1:               
    12010X198901011234
    110108196711301866
    37070419881216001X
    

    【代码】:

    str_1 = [] 
    quan = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
    dic = {0:1,1:0,2:'X',3:9,4:8,5:7,6:6,7:5,8:4,9:3,10:2} 
    z=0
    t=1 
    n = int(input())
    for i in range(n):
      str_ = str(input())
      str_1.append(str_)
    for i in str_1:
      for j in i[0:17]:
         if j < '0' or j > '9':  
           print(i)
           t=0
           str_1.remove(i)
           break
    for b in str_1: 
      for k in range(17):
         z+=int(b[k])*quan[k]  
      z=z%11
      if b[17] != str(dic[z]):  
         print(b)
         t=0
         z=0
      else:
         z=0
    if t == 1:
      print("All passed") 
    

    25.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第n天(<1<n<11)早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

    【输入格式】:

    共一行,为一个大于1小于11的正整数。

    【输出格式】:

    共一行,为一个正整数

    【输入样例】:

    2
    

    【输出样例】:

    4
    

    代码】:

    a = int(input())
    sum = 1
    for i in range(1,a):
      sum = (sum + 1) * 2
    print(sum)
    

    26.给定一个大于2的正整数n,打印出小于n(不包括n且n不大于100)的所有素数。要求将符合条件的输出填入一个列表中,打印的结果为该列表。(素数:只能被1和它本身整除的数)

    【输入格式】:

    共一行,为一个大于2的正整数。

    【输出格式】:

    共一行,为一个列表

    【输入样例】:

    10
    

    【输出样例】:

    [2,3,5,7]
    

    【代码】:

    import math
    a = int(input())
    Alist = []
    for i in range(2,a):
      for j in range(2,i):
         if i % j == 0:
           break
      else:
         Alist.append(i)
    print(Alist)
    

    27.打印完数:输入一个正整数n(n<1000),输出1到n之间的所有完数(包括n)。(完数:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 6 = 1+2+3。)

    【输入格式】:

    共一行,为一个正整数

    【输出格式】:

    若干行,从小到大输出完数,一行为一个数

    【输入样例】:

    30
    

    【输出样例】:

    6
    28
    

    【代码】:

    a = int(input())
    for i in range(2,a):
      s = 1
      for j in range(2,i):    
         if i % j == 0:
           m = i / j
           s = s + m
      if s == i:
          print(i)
    

    28.如果一个正整数,它能被7整除或者它的十进制表示法中某个位数上的数字为7,则称之为与7相关的数。现在我们给定一个正整数n(n<1000),求所有小于等于n的与7无关的正整数的平方和。

    【输入格式】:

    共一行,为一个正整数

    【输出格式】:

    共一行,为一个正整数

    【输入样例】:

    50
    

    【输出样例】:

    31469
    

    【代码】:

    def num(a):
      if a % 7 == 0:
         return True
      elif '7' in set(str(a)):
         return True
      else:
         return False
    a = int(input())
    sum = 0
    for i in range(1,a + 1):
      if not num(i):
         sum += i ** 2
    print(sum)
    

    29.用Python模拟简单的计算器,实现python中的基本计算运算,具体方法为:分三行输入,前两行输入数字,第三行输入一个运算符(包括:+、-、*、/、%、**),输出运算结果。注意,如果除数为0,需要输出“无法计算,请重新输入运算符:”,并且重新输入新的运算符。

    【输入样例1】: 【输入样例2】:

    7                       10
    3                       0
    /                       /
    

    【输出样例1】: 【输出样例2】:

    2.33                    无法计算,请重新输入运算符:
    

    【代码】:

    def Input(a, b, symbol):
      if symbol == '+':
         print(a + b)
      elif symbol == '-':
         print(a - b)
      elif symbol == '*':
         print(a * b)
      elif symbol == '/':
         if b == 0:
           print("无法计算,请重新输入运算符:")
           Resymbol = input()
           Input(a, b, Resymbol)
         else:
           print("%.2f" % (a / b))
      elif symbol == '%':
         print(a % b)
      elif symbol == '**':
         print(a ** b)
    a = float(input())
    b = float(input())
    symbol = input()
    Input(a, b, symbol)
    

    30.四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。例如:当n为3时,有13 + 53 + 33 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。

    【样例】:

    输入:无
    输出:
    1634
    8208
    9474
    

    【代码】:

    for i in range(1000,10000):
      a = str(i)
      if i == pow(eval(a[0]), 4) + pow(eval(a[1]), 4) + pow(eval(a[2]), 4) + pow(eval(a[3]), 4):
         print(i)
    

    31.给定一个非负整数列表,你最初位于列表的第一个位置(下标为0)。列表中的每个元素代表你在该位置可以跳跃的长度。判断你是否能够到达最后一个位置。

    【样例1】:

    输入: [2,3,1,1,4]
    输出: true
    解释: 我们从下标为 0 起跳,跳2步,到达下标为2的位置;然后再从下标为2起跳,跳 1步,到达下标为3的位置;然后再从下标为3起跳,到达最后一个位置。
    

    【样例2】:

    输入: [3,2,1,0,4]
    输出: false
    

    【代码】:

    Oldlist = list(map(int,input().split(',')))
    Newlist = []
    for k in Oldlist:
      Newlist.append(int(k))
    l = len(Newlist)
    n = 0
    while True:
      if Newlist[n] == 0:
         print('false')
         break
      n += Newlist[n]
      if n == l-1:
         print('true')
         break
      elif n >= l:
         print('false')
         break
    

    32.猜数游戏。让计算机随机产生一个预设数字,范围在0-100之间,当用户输入的不是整数(如字母、浮点数)出错时,给出“输入内容必须为整数!”的提示,并让用户重新输入,若输入正确让用户通过键盘输入所猜的数,如果大于预设的数,显示“遗憾,太大了”;小于预设的数,显示“遗憾,太小了”;如此循环,直至猜中该数,显示“预测N次,你猜中了!”,其中N是用户输入数字的次数。

    【注意】请各位同学自学用random()函数生成随机数的方法。

    【代码】:

    import random
    def Playgame(a, i, count):
      if not a.isdigit():
         count += 1
         print("输入内容必须为整数!")
         Rea = input()
         Playgame(Rea, i, count)
      else:
         a = int(a)
         if a > i:
           count += 1
           print("遗憾,太大了")
           Rea = input()
           Playgame(Rea, i, count)
         elif a < i:
           count += 1
           print("遗憾,太小了")
           Rea = input()
           Playgame(Rea, i, count)
         elif a == i:
           print("预测" + str(count) + "次,你猜中了!")
    a = input()
    i = random.randint(1,100)
    count = 1
    Playgame(a, i, count)
    

    33.【斐波拉契数列:这个数列从第三项开始,每一项都等于前两项之和】

    题目内容:已知斐波拉契数列的前两项都是1,我们定义求斐波拉契数列的第n项(n<=50)的函数为fbnq,程序主体如下:

    n = int(input())
    print(fbnq(n))
    

    请补充完成对fbnq函数的定义。

    输入格式:共一行,为一个正整数。

    输出格式:共一行,为一个正整数。

    【输入样例】:

    7
    

    【输出样例】:

    13
    

    代码】:

    def fbnq(n):
      if n in (1, 2):
         return 1
      while n > 2:
         return fbnq(n - 1) + fbnq(n - 2)
    n = int(input())
    print(fbnq(n))
    

    34.【求两个数的最大公约数】

    题目内容:输入两个正整数num1和num2(不超过1000),求它们的最大公约数并输出。我们定义求最大公约数的函数为hcf,给出程序主体如下:

    num1 = int(input())
    num2 = int(input())
    print(hcf(num1, num2))
    

    请补充完成hcf函数的定义。

    输入格式:共两行,每一行输入一个不超过1000的正整数。

    输出格式:共一行,输出一个正整数。

    【输入样例】:

    6
    8
    

    【输出样例】:

    2
    

    【代码】:

    def hcf(num1, num2):
       x = num1 % num2
       while x != 0:
          num1 = num2
          num2 = x
          x = num1 % num2
       return num2
    num1 = int(input())
    num2 = int(input())
    print(hcf(num1, num2))
    

    35.【求两个数的最小公倍数】

    题目内容:

    输入两个正整数num1和num2(不超过500),求它们的最小公倍数并输出。我们定义求最小公倍数的函数为lcm,给出程序主体如下:

    num1 = int(input())
    num2 = int(input())
    print(lcm(num1, num2))
    

    请补充完成lcm函数的定义。

    输入格式:共两行,每一行输入一个不超过500的正整数。

    输出格式:共一行,输出一个正整数。

    【输入样例】:

    4
    6
    

    【输出样例】:

    12
    

    【代码】:

    def hcf(num1, num2):
       x = num1 % num2
       y = num1 * num2
       while x != 0:
          num1 = num2
          num2 = x
          x = num1 % num2
       return int(y / num2)
    num1 = int(input())
    num2 = int(input())
    print(lcm(num1, num2))
    

    35.【列表元素筛选】题目内容:已知输入为一个列表,列表中的元素都为整数,我们定义元素筛选函数为foo,功能是检查获取传入列表对象的所有奇数位索引(注意列表的索引是从0开始的)对应的元素,并将其作为新列表返回给调用者。给出程序主体如下:

    a = list(map(int, input().split()))
    print(foo(a))
    

    请补充完成对foo函数的定义。

    输入格式:共一行,列表中的元素值,以空格隔开。

    输出格式:共一行,为一个列表。

    输入样例:

    1 2 3 4
    

    输出样例:

    [2, 4]
    

    【代码】:

    def foo(a):
      b = 0
      Newa = []
      for i in a:
         b = a.index(i)
         if b % 2 != 0:
           Newa.append(i)
      return Newa
    a = list(map(int, input().split()))
    print(foo(a))
    
  • 相关阅读:
    (转载)python调用shell命令之os 、commands、subprocess
    Nginx的upstream反向代理、负载均衡详解
    安装Nginx到linux服务器(Ubuntu)详解
    Head First Python-python面向对象
    Head First Python-Python简单处理文件
    ctfshow 红包题 武穆遗书
    ciscn_2019_s_3 一道收获很多的题(进步大只能说明基础差)
    攻防世界 pwn welpwn
    get_started_3dsctf_2016
    &pwn1_sctf_2016 &ciscn_2019_n_1 &ciscn_2019_c_1 &ciscn_2019_en_2&
  • 原文地址:https://www.cnblogs.com/mogebw/p/12687433.html
Copyright © 2011-2022 走看看