规律数求和

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了规律数求和相关的知识,希望对你有一定的参考价值。

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)、for in循环、添加和调用列表求和。在玩这个数字求和游戏时,我们也能熟悉和复习这些用法,希望在快乐的打代码中我们都能有所收获。

以上是关于规律数求和的主要内容,如果未能解决你的问题,请参考以下文章

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

数字游戏(找规律)

嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)

嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)

嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)

嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)