规律数求和

简介: 规律数求和

1 引言

今天,我们来学习一下有规律的数求和。我们学过很多的算法公式,像一般的求和、求阶乘、求奇偶数等一类的非常简单普遍的算法太枯燥了,那么,今天我们来认识一个带有游戏性和规律性的一串数字求和。


2 问题

使用函数求和,求s= a + aa + aaa + … + aa…a 的值(最后一个数中 a 的个数为 n ),其中 a 是一个1~9的数字,例如:2 + 22 + 222 + 2222 + 22222 (此时 a=2 n=5 )。


3 方法

首先,我们定义一个函数,题目中要求要有两个参数,所以在函数名中设置两个参数,分别设置为a、b;然后,我们要讨论是否输入的两个参数满足要求,如果满足就运行,不满足就提醒错误;其次,我们就要写我们的算法——找到每一个数与前一个数的规律为(后一个数=前一个数+第一个数* 10^这个数的位数),我利用循环将每次循环后的数增加到一个列表中,最后再求列表中所有数的和,由于这种算法容易忽略第一数a因此在最后求和时千万别忘了加上a。最后按照函数格式打印出就完成求值了。


4 实验结果与讨论

最后通过实验证明,该方法执行有效。

代码清单 1

lis=[]
def putin(a,b):
   if a in range(1,10) and b in range(1,10):
       sum = a
       z = a
       for n in range(1,b):
           z = z+a*(10**n)
           lis.append(z)
       for j in lis:
           sum += j
       return sum
   else:
       return '数据错误'
a,b=map(int,input(':').split(','))
print(putin(a,b))


5 结语

在这个代码中,我们运用了定义函数、map函数格式输入两个参数(a,b)、forin循环、添加和调用列表求和。在玩这个数字求和游戏时,我们也能熟悉和复习这些用法,希望在快乐的打代码中我们都能有所收获。

目录
相关文章
|
6月前
|
人工智能
PTA-求一组数中大于平均值的数的和
求一组数中大于平均值的数的和
61 0
|
6月前
求十个数的乘积
求十个数的乘积
33 0
|
算法
【二分查找】数的范围/数的三次方根
【二分查找】数的范围/数的三次方根
【二分查找】数的范围/数的三次方根
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
|
存储 算法 索引
算法 | 100000 个数的求和只需要 O(1),可能吗?
算法 | 100000 个数的求和只需要 O(1),可能吗?
106 0
算法 | 100000 个数的求和只需要 O(1),可能吗?
给你一组数,求出其中两两最大公约数中最大的值
给你一组数,求出其中两两最大公约数中最大的值
64 0
h0039. 平方数 (15 分)
h0039. 平方数 (15 分)
131 0
统计正数和负数的个数然后计算这些数的平均值 (15 分)
统计正数和负数的个数然后计算这些数的平均值 (15 分)
269 0
L1-009 N个数求和 (20 分)
L1-009 N个数求和 (20 分)
136 0
统计正数和负数的个数然后计算这些数的平均值(循环、数组解法)
统计正数和负数的个数然后计算这些数的平均值(循环、数组解法)
204 0