C语言网-每日一题练习-Python


2022.3.29


题目 1013: [编程入门]Sn的公式求和

题目描述:求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入。

https://www.dotcpp.com/oj/problem1013.html

Python代码:

n = int(input())
sn = 0
for i in range(1,n+1):
    sn += eval('2' * i)
print(sn)

2022.3.30


题目 1014: [编程入门]阶乘求和

题目描述:求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。

https://www.dotcpp.com/oj/problem1014.html

Python代码:

n = int(input())
sn = 0
s = 1
ls = []
if 1 <= n <= 20:
    for i in range(1,n+1):
        s *= i
        ls.append(s)
    for i in ls:
        sn += i
    print(sn)
else:pass

2022.3.31


题目 1015: [编程入门]求和训练

题目描述:求以下三数的和,保留2位小数 1~a之和 1~b的平方和 1~c的倒数和。

输入:a b c

输出:1+2+...+a + 1^2+2^2+...+b^2 + 1/1+1/2+...+1/c

https://www.dotcpp.com/oj/problem1015.html

Python代码:

a,b,c = map(int,input().split())
sa = 0
sb = 0
sc = 0
s = 0
for i in range(1,a+1):
    sa += i
for j in range(1,b+1):
    sb += j ** 2
for k in range(1,c+1):
    sc += 1/k
s = sa + sb + sc
print(f'{s:.2f}')

2022.4.1


题目 1016: [编程入门]水仙花数判断

题目描述:打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。

https://www.dotcpp.com/oj/problem1016.html

Python代码:

ls = []
for i in range(100,1000):
    ls.append(str(i))
for j in ls:
    if int(j) == int(j[0])**3 + int(j[1])**3 + int(j[2])**3:
        print(j)

或者:

for i in range(100,1000):
    if i == (i//100) ** 3 + (i//10%10) ** 3 + (i%10) ** 3:
        print(i)

2022.4.2


题目 1017: [编程入门]完数的判断

题目描述:一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子

输入:1000
输出:6 its factors are 1 2 3 
28 its factors are 1 2 4 7 14 
496 its factors are 1 2 4 8 16 31 62 124 248

https://www.dotcpp.com/oj/problem1017.html

Python代码:

n = int(input())
 
def fun(num):
    ls = []
    for i in range(2, num//2 + 1):
        if num % i == 0:
            ls.append(i)
        else:
            continue
    return ls
    
for j in range(5, n+1):
    m = fun(j)
    m.insert(0,1)
    s = sum(m)
    if s  == j:
        print("{} its factors are {}".\
        format(j," ".join(str(i)for i in m)),end='\n')

或:

n = int(input())
for j in range(6, n+1):
    ls = [1]
    for i in range(2, j//2 + 1):
        if j % i == 0:
            ls.append(i)
    s = sum(ls)
    if s  == j:
        print("{} its factors are {}".\
        format(j," ".join(str(i)for i in ls)),end='\n')

或:

from functools import reduce
n = int(input())
for i in range(2, n+1):
    ls = [1]
    for j in range(2, i):
        if i % j == 0:
            ls.append(j)
    if i == reduce(lambda x, y: x + y, ls):
        print(str(i)+" its factors are ", end='')
        for k in range(len(ls)):
            print(f"{ls[k]}", end=' ')
        print()

2022.4.3


题目 1018: [编程入门]有规律的数列求和

题目描述:有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。

https://www.dotcpp.com/oj/problem1018.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值