等差数列末项计算
题目内容:
给出一个等差数列的前两项a1,a2,求第n项是多少
可以使用以下语句实现非负整数n的输入:
n=int(input())
输入格式:
三行,包含三个整数a1,a2,n
输出格式:
一个整数,即第n项的值
输入样例:
1
4
100
输出样例:
298
My answer
思路一:等差数列,先求差m是多少,第n项的值很多种方法算,我就采用这种a1 + m*(n-1)
a1 = int(input())
a2 = int(input())
m = a2 - a1
n = int(input())
N = a1 + m*(n-1)
print(N)
思路二:我们折腾一下电脑,让计算机用笨方法,从a1开始算,计算n-1次
a1 = int(input())
a2 = int(input())
n = int(input())
m = a2 - a1
for i in range(n-1):
a1 += m
print(a1)
补充知识: python判断等差数列
废话不多说啦,大家还是直接看代码吧!
import sys
n = int(sys.stdin.readline().strip())
s = sys.stdin.readline()
s = list(map(int, s.split(' ')))
print(n)
print(s)
for i in range(len(s)-1):
for j in range(i+1, len(s)):
if s[i] >= s[j]:
s[i], s[j] = s[j], s[i]
for j in range(1, len(s)-1):
if s[j] - s[j-1] == s[j+1] - s[j]:
flag = 1
else:
flag = 0
if flag == 1:
print('Possible')
else:
print('Impossible')
以上这篇python 等差数列末项计算方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
时间:2020-05-03
题目: 计算斐波那契数列.具体什么是斐波那契数列,那就是0,1,1,2,3,5,8,13,21,34,55,89,144,233. 要求: 时间复杂度尽可能少 分析: 给出了三种方法: 方法1:递归的方法,在这里空间复杂度非常大.如果递归层数非常多的话,在python里需要调整解释器默认的递归深度.默认的递归深度是1000.我调整了半天代码也没有调整对,因为递归到1000已经让我的电脑的内存有些撑不住了. 方法2:将递归换成迭代,这样时间复杂度也在代码中标注出来了. 方法3:这种方法利用了求幂的
如下所示: import numpy as np # 等差数列 print(np.linspace(0.1, 1, 10, endpoint=True)) print(np.arange(0.1, 1.1, 0.1)) “””总结: arange 侧重点在于增量,不管产生多少个数 linspace 侧重于num, 即要产生多少个元素,不在乎增量 “”” # 等比数列 np.logspace(1, 4, 4, endpoint=True, base
最近跑去学了下python,一个很简单的题,结果发现数学公示忘了,在不用for循环的情况下居然有些懵,记录为下.. 题:等差数列可以定义为每一项与它的前一项的差等于一个常数,可以用变量 x1 表示等差数列的第一项,用 d 表示公差,请计算数列 1 4 7 10 13 16 19 – 前 100 项的和. 等差求和公示: 和=(首数+尾数)*项数/2; 题的懵就是尾数忘了怎么求了,查了百度得到结果很简单. 尾数公式: 尾数 = 首数 + (项数-1)*等差数 Python代码: x1 = 1 d
本文实例讲述了Python实现获取前100组勾股数的方法.分享给大家供大家参考,具体如下: 本来想采用穷举试探的方式来做这个算法,后来发现还是有点麻烦.从网络上找来了一种求解方法如下: 当a为大于1的奇数2n+1时,b=2n^2+2n,c=2n^2+2n+1.实际上就是把a的平方数拆成两个连续自然数. 编写代码如下: #!/usr/bin/python for n in range(1,101): a = 2 * n +1 b = 2 * (n** 2) + 2 * n c = b + 1 #
本文实例讲述了Python实现的寻找前5个默尼森数算法.分享给大家供大家参考,具体如下: 找前5个默尼森数. 若P是素数且M也是素数,并且满足等式M=2**P-1,则称M为默尼森数.例如,P=5,M=2**P-1=31,5和31都是素数,因此31是默尼森数. python2代码如下: from math import sqrt def isPrime(n): ‘judge whether a positive integer is a prime number!’ if n==1: return
如下所示: # 计算0到100之间的之间所有的数字累计求和结果 # 定义最终结果的变量 result = 0 # 定义一个整数的变量来记录循环次数 i = 0 # 开始循环 while i <= 100: print(i) # 每一次循环都让 result 和 i 这个变量相加 # 处理计数器 result += i # result = i + result i += 1 print(“1~100的计算结果等于%d”%result) 首先定义一个变量,result来记录相加的最
本文实例展示了Python统计列表中的重复项出现的次数的方法,是一个很实用的功能,适合Python初学者学习借鉴.具体方法如下: 对一个列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],现在我们需要统计这个列表里的重复项,并且重复了几次也要统计出来. 方法1: mylist = [1,2,2,2,2,3,3,3,4,4,4,4] myset = set(mylist) #myset是另外一个列表,里面的内容是mylist里面的无重复 项 for item in myset: prin
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和. 程序分析:请抓住分子与分母的变化规律. 程序设计: public class test20 { public static void main(String[] args) { float fm = 1f; float fz = 1f; float temp; float sum = 0f; for (int i=0;i<20;i++){ temp = fm; fm = fz; fz =
本文实例讲述了Python使用zip合并相邻列表项的方法.分享给大家供大家参考,具体如下: 1>使用zip()函数和iter()函数,来合并相邻的列表项 >>> x [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> zip(*[iter(x)]*2) [(1, 2), (3, 4), (5, 6), (7, 8)] >>> zip(*[iter(x)]*3) [(1, 2, 3), (4, 5, 6), (7, 8, 9)] >
有时我们会碰到类似下面这样的 unicode 字符串: u’xe4xbdxa0xe5xa5xbd’ 这明显不是一个正确的 unicode 字符串,可能是在哪个地方转码转错了. 我们要想得到正确的 unicode 字符串首先就必须先将这个字符串转成非 unicode 字符串, 然后再进行解码.按照普通的办法进行 encode 肯定是不行的,因为这不是一个正确的 unicode 字符串: In [1]: u’xe4xbdxa0xe5xa5xbd’.encode(‘utf8’)
基于Python中求和函数sum的用法详解 今天在看这本书的时候,看到一段Python代码,当时是百思不得其解,总觉得是书中排版出错了,后来去了解了一下sum的用法,看了一些Python大神写的代码后才发现是自己浅薄了!特在此记录一下.书中代码段摘录如下: from math import sqrt def sim_distance(prefs, person1, person2): # 得到shared_items的列表 si = {} for item in prefs[p
(1) 如果excel文件是xls,2003版的,使用xlrd和xlwt库来对xls文件进行操作 (2) 如果excel文件是xlsx,2007以上版的,使用openpyxl库来对xlsx文件进行操作 Tips:xlrd.xlwt和openpyxl非python自带库. 我们使用Python做数据挖掘和分析时候,当数据行超过一定数量,xls文件是存不下的.显然无法满足我们的大量数据存储需求,这个时候需要改用xlsx. 那具体xls和xlsx最大分别可以存多少行呢? (1) 对于2003版本的xl