python程序设计——练习6

1.数列求和

Description
计算t=1+1/2+1/3+…+1/n。
Input
整型n。
Output
t(保留六位小数)。
Sample Input 1

10

Sample Output 1

2.928968

代码:

n = int(input())
ans = 0
for i in range(1,n+1):
    ans += 1/i
print('%.6f' % ans)

2.数列求和-3

题目内容:
编写程序实现以下功能:计算1!+2!+…+n!。
输入格式:
一个大于0的整数。
输出格式:
计算结果。
输入样例:

3

输出样例:

9

代码:

n = int(input())
ans, cnt = 0, 1
for i in range(1,n+1):
    cnt *= i
    ans += cnt
print(ans)

3.温度转换

Description
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。转换算法如下:(C表示摄氏度、F表示华氏度)C = ( F - 32 ) / 1.8;F = C * 1.8 + 32。
要求如下:
(1) 输入输出的摄氏度可采用大小写字母C结尾,温度可以是整数或小数,如:12.34C指摄氏度12.34度;
(2)输入输出的华氏度可采用大小写字母F结尾,温度可以是整数或小数,如:87.65F指华氏度87.65度;
(3)输出保留小数点后两位,输入格式错误时,输出提示:输入格式错误;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
Sample Input 1

12.34C

Sample Output 1

54.21F

Sample Input 2

12.34

Sample Output 2

输入格式错误!

Sample Input 3

12.34c

Sample Output 3

54.21f

代码:

s = input()
if s[-1] == 'F':
    print('%.2fC' % ((float(s[:-1])-32)/1.8))
elif s[-1] =='f':
    print('%.2fc' % ((float(s[:-1])-32)/1.8))
elif s[-1] == 'C':
    print('%.2fF' % (float(s[:-1])*1.8+32))
elif s[-1] == 'c':
    print(f'{float(s[:-1])*1.8+32:.2f}f')
else:
    print('输入格式错误!')

4.循环数数

Description
数字197可以被称为循环素数,因为197的三个数位循环移位后的数字:197,971,719均为素数。100以内这样的数字包括13个,2,3,5,7,11,13,17,31,37,71,73,79,97。要求任意正整数n以内一共有多少个这样的循环素数。
Input
共一行,为一个正整数n。
Output
n以内循环素数的值。
Sample Input 1

100

Sample Output 1

13

代码:

def check(x):
    if x == 2:
        return True
    for i in range(2,x):
        if x % i == 0:
            return False
    return True
n = int(input())
ans = 0
for i in range(2,n+1):
    flag = True
    if check(i):
        s = str(i)
        for j in range(1,len(s)):
            a = s[j:] + s[:j]
            if not check(int(a)):
                flag = False
                break
    else:
        flag = False
    if flag:
        ans += 1
print(ans)

5.数列求和-2

使用for循环编写程序实现以下功能:计算1-1/3+1/5-1/7+…-1/99+…,结果保留2位小数。
输入格式:
输入该表达式的项数n。例如,如果输入2,则计算1-1/3;如果输入5,则计算1-1/3+1/5-1/7+1/9。
输出格式:
计算结果保留2位小数。
输入样例:

2

输出样例:

0.67

代码:

n = int(input())
ans, t, a = 1, -1, 3
for i in range(1,n):
    ans += 1 * t / a
    t *= -1
    a += 2
print('%.2f' % ans)

6.单词统计 — part one

【题目描述】
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
【输入描述】
输入给出一行字符。
【输出描述】
在一行中输出单词个数。
【输入样例1】

Let’s go to room 209.

【输出样例1】

5

代码:

print(len(input().split()))

7.任意整数各个位数之和

请输入任意一个正整数,求各个位数之和并输出。
输入样例1:

123

输出样例1:

sum=6

代码:

n = input()
sum = 0
for i in n:
    sum += int(i)
print('sum=%d' % sum)

8.求两个数的最小公倍数

题目内容:
输入两个正整数num1和num2(不超过500),求它们的最小公倍数并输出。
PS:我们使用辗转相除法来进行最大公约数的求解。
辗转相除法是指,用较大的数除较小的数,将所得的余数与较小的数相除,再将所得的余数与前一步除数相除,重复这个过程,直到余数为0为止,最后得出的除数就是两个数的最大公约数,这两个数的乘积除以最大公约数就是最小公倍数。
输入格式:
共两行,每一行输入一个不超过500的正整数。
输出格式:
共一行,输出一个正整数。
输入样例:

4
6

输出样例:

12

代码:

def gcd(a,b):
    if b:
        return gcd(b, a % b)
    else:
        return a
a = int(input())
b = int(input())
print(a*b//gcd(a,b))

9.蟠桃记

Description
喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!
什么问题?他研究的问题是蟠桃一共有多少个!
不过,到最后,他还是没能解决这个难题,呵呵-
当时的情况是这样的:第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?
Input
输入一个正整数n(1<n<30),表示只剩下一个桃子的时候是在第n天发生的。
Output
输出第一天开始吃的时候桃子的总数。
Sample Input 1

4

Sample Output 1

22

代码:

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

10.求素数

题目内容:
编写程序实现以下功能:计算1~n之间的素数并输出。
输入格式:
一个大于1的整数。
输出格式:
每行输出一个素数。
输入样例:

10

输出样例:

2
3
5
7

代码:

def check(x):
    if x == 2:
        return True
    for i in range(2,x):
        if x % i == 0:
            return False
    return True
n = int(input())
for i in range(2,n+1):
    if check(i):
        print(i)

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值