0
点赞
收藏
分享

微信扫一扫

PTA Python程序设计-04

m逆光生长 2022-05-03 阅读 99
pythonpta

python题目集,源于学校老师布置在pta上的题目,博主用来复习的

6-1 缩写词

缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。

函数接口定义:

phrase是短语参数,返回短语的缩写词

裁判测试程序样例:

输入样例:

输出样例:

思路:

代码:

def acronym(phrase):
    phrase = phrase.upper().split()
    res = ""
    for i in range(len(phrase)):
        x = phrase[i][0]
        res += x
    return res

6-2 求多项式的值

一元多项式可以用列表表示。如p(x)=1+3x+9 x 4 x^4 x4
,可以表示成列表[1,3,0,0,9]。输入列表表示的多项式和x的值,求多项式的值。

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

思路:

代码:

def polyvalue(lst, y):
    res = 0
    for i in range(len(lst)):
        res += lst[i] * (y ** i)

    return res

6-3 使用函数求素数和

使用函数求素数和

prime§, 其中函数prime当用户传入参数p为素数时返回True,否则返回False.
PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

思路:

代码:

def prime(p):
    if p == 1: return False
    if p == 2: return True
    for i in range(2, p):
        if p % i == 0:
            return False
    return True


def PrimeSum(m,n):
    res = 0
    for i in range(m, n+1):
        if prime(i):
            res += i
    return res

6-4 浮点数的十进制转二进制

本题要求实现一个函数,将十进制浮点数转换成二进制浮点数(只考虑正数),例如:十进制浮点数0.2转换为二进制浮点数为:0b0.001100110011001100110011001100110011001100110011001101。

转换规则如下:

整数部分采用“除2取余,逆向取值”的方法;
小数部分则乘2取整,直到余下的小数为0或者满足精度要求为止,然后顺序取值(即最先得到的整数为最高位,最后得到的整数为最低位)。
例如:
在这里插入图片描述

10-2.webp
所以,最终结果就是:11 1010.101。

函数接口定义:

其中 dec_num 是用户传入的十进制浮点数,返回对应的二进制浮点数字符串。

裁判测试程序样例:

输入样例:

输出样例:

思路:

代码:

def dec2bin(dec_num):
    res = ""
    integer = int(dec_num)
    res += bin(integer)
    if integer == dec_num:
        return res
    decimal = dec_num - integer

    res += "."
    while(True):
        if decimal == 0:
            break
        else:
            x = decimal * 2
            res += str(int(x))
            decimal = x - int(x)
    return res

6-5 打印指定范围内的全部回文素数

回文素数是指一个数既是素数又是回文数,例如131既是素数又是回文数。请实现下述两个函数,帮助测试程序完成如下功能:从键盘输入正整数N, 打印从1 ~ N(包含N)的全部回文素数,一行一个。

函数接口定义:

isPrime()用于判断整数num是否是素数,是返回True, 否则返回False.
reverseNumber()用于返回整数num的反向数,321的反向数为123, 320的反向数为23。

裁判测试程序样例:

输入样例:

输出样例:

思路:

代码:

def isPrime(num):
    if num == 1:
        return False
    elif num == 2:
        return True
    else:
        for i in range(2, num):
            if num % i == 0:
                return False
        return True


def reverseNumber(num):
    res = 0
    while True:
        if int(num) == 0:
            break
        res = res * 10 + (int(num % 10))
        num = int(num / 10)
    return res
举报

相关推荐

0 条评论