我的python日记

6-9 使用函数求特殊a串数列和

给定两个均不超过9的正整数a和n,要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列和

函数接口定义:

fn(a,n)
其中 a 和 n 都是用户传入的参数。 a 的值在[1, 9]范围;n 是[1, 9]区间内的个位数。函数须返回级数和

裁判测试样例

/* 请在这里填写答案 */
         
a,b=input().split()
s=fn(int(a),int(b))
print(s)

在这里给出一组输入。例如:

输入样例

2 3

输出样例:

在这里给出相应的输出。例如:

246

代码

def fn(a,n):
    s=0
    for i in range(1,n+1):
        s+=int(str(i)*i)
    return s

心路历程

起初我是用了另一个代码,但它确实没有这个来的快以及简易。

def fn(a,n):
    sum=0
    for i in range(1,n+1):
        c=a
        for j in range(0,i-1):
            c=a+c*10
        sum=sum+c
    return sum

首先是在理解难度上第二个代码远超第一个代码。

但从严谨程度上,第二个似乎是更胜一筹

那我想着重来讲一下第二个的思路

第一个for 循环是用来表示n个数字相加

第二个for 循环是用来表示每一个相加的数比上一个更进一个位数

那这样就能构成问题中我们所提到的那个式子。求a+aa+aaa++⋯+aa⋯aa(n个a)

当i为1的时候就有c=a 当i为2的时候就有c=aa,当想不明白的时候就举个例子就想明白了。

如果要记的话第一个确实比第二个好记。

6-10 使用函数求素数和

使用函数求素数和

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

函数接口定义:

在这里描述函数接口:
prime(p),返回True表示p是素数,返回False表示p不是素数
PrimeSum(m,n),函数返回素数和

裁判测试程序样例:


/* 请在这里填写答案 */

m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))

输入样例:

在这里给出一组输入。例如:

1 10

输出样例:

在这里给出相应的输出。例如:

17

代码

​

def prime(p):
    if p<=1:
        return False
    elae:
        for i in range(2,i):
            if p%i==0:
                return False
            return True
def PrimeSum(m,n):
    for i in range(m,n+1):
        sum=0
        if prime(i):
            sum+=i
    return sum
​

 心路历程

首先在做这个题的时候我犯了一个很大的错误那就是,在第第八段的时候我填了一句

else:

    return True

这是一个极大的错误,那在这个代码中他不会报错,但他会输出很多个F/T,这就不用多说了吧,我们都明白。

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值