面试机试之序列前n项和
晚上下班前再做一道题目,感觉题目看起来就很简单的样子,短短的几行,读完之后的确是很简单,就是给定一个序列求解序列的前n项的和,好了不多说别的了,因为很简单直接看代码:
#!/usr/bin/env python
#coding:utf-8
from __future__ import division
'''
有一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,.... 求这个分数序列的前n项之和。
输入
测试数据有多组,其第一行为一个正整数k(0<k<=90),表示测试数据的组数。每组测试数据为一行,
为单个正整数n(0<n<=90)。
样例输入
1
2
输出
每组测试数据单独输出有一行:分数序列的和(精确到小数点后4位)。
样例输出
3.5000
时间限制
C/C++语言:1000MS
其他语言:3000MS
内存限制
C/C++语言:65536KB
其他语言:589824KB
'''def fibs(a,b,num):# result=[0,1]result=[a,b]for i in range(num-2):result.append(result[-2]+result[-1])return resultlist1=fibs(2,3,100)
list2=fibs(1,2,100)
num_list=zip(list1, list2)
#print num_list
k=int(raw_input())
for i in range(k):n=int(raw_input())count=0for j in range(n):# count+=round(num_list[j][0]/num_list[j][1], 4)count+=num_list[j][0]/num_list[j][1]print '%.4f' %count
当然,我的解决办法很简单粗暴,看出来分子和分母都单独是一个斐波那契数列,所以果断单独处理,写了一个生成前n项斐波那契数列的函数之后分别生成两个斐波那契数列就可以了,接下来使用的是python内置函数zip来组合数字,每一个分数在这里是一个列表里面的元组。
在这里提交的时候遇到了一个问题就是:
# count+=round(num_list[j][0]/num_list[j][1], 4)
这句话导致第一次提交AC只有17%左右的正确率,其实这么写的时候我就感觉结果会有问题,因为每一次累加都保留了的话就会对最后的结果造成误差,果然还是错了,换成程序中的下面的那句话后就全部AC了,如下:
说明:所有测试数据均已输出正确结果!^_^
面试机试之序列前n项和相关推荐
- C语言入门题-求阶乘序列前N项和
7-1求阶乘序列前N项和 (15分) 本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和. 输入格式: 输入在一行中给出一个不超过12的正整数N. 输出格式: 在一行中输出整数结果. 输入 ...
- 实验4-1-6 求分数序列前N项和 (15 分)
实验4-1-6 求分数序列前N项和 (15 分) 本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+- 的前N项之和.注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的 ...
- 实验2-4-4 求阶乘序列前N项和 (C语言)
实验2-4-4 求阶乘序列前N项和 (C语言) 本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和. 输入格式: 输入在一行中给出一个不超过12的正整数N. 输出格式: 在一行中输出整数结 ...
- 实验2-4-3 求平方根序列前N项和 (C语言)
实验2-4-3 求平方根序列前N项和 (C语言) 本题要求编写程序,计算平方根序列√1+√2+√3+⋯的前N项之和.可包含头文件math.h,并调用sqrt函数求平方根. 输入格式: 输入在一行中给出 ...
- 2021/7/15 习题2-6 求阶乘序列前N项和
习题2-6 求阶乘序列前N项和 本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和. 输入格式: 输入在一行中给出一个不超过12的正整数N. 输出格式: 在一行中输出整数结果. 输入样例: ...
- C语言:习题2-5 求平方根序列前N项和.2021-08-02
习题2-5 求平方根序列前N项和 (15 point(s)) 本题要求编写程序,计算平方根序列1+2+3+⋯的前N项之和.可包含头文件math.h,并调用sqrt函数求平方根. 输入格式: 输入 ...
- 求幂级数展开的部分和 / 求分数序列前N项和 / 特殊a串数列求和
习题4-2 求幂级数展开的部分和 (20分) 已知函数e^xex可以展开为幂级数1+x+x^2 /2! + x^3 /3! + \cdots + x^k /k! + \cdots1+x+x ...
- 求奇数分之一序列前N项和
练习2-14 求奇数分之一序列前N项和 (15分) 本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和. 输入格式: 输入在一行中给出一个正整数N. 输出格式: 在一 ...
- C语言练习2-14 求奇数分之一序列前N项和
C语言练习2-14 求奇数分之一序列前N项和 本题要求编写程序,计算序列 1 + 1/3 + 1/5 + - 的前N项之和. 输入格式: 输入在一行中给出一个正整数N. 输出格式: 在一行中按照&qu ...
- 韩信点兵--求分数序列前N项和--特殊a串数列求和--猜数字游戏
实验4-1-5 韩信点兵 (10分) 在中国数学史上,广泛流传着一个"韩信点兵"的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳.据说韩信的数学水平 ...
最新文章
- leetcode 102.二叉树的层序遍历
- Qt安装和QML HelloWord程序
- /etc/passwd 与 /etc/shadow文件的区别
- C/C++之#ifdef、#if、#if defined的区别
- 最高效的进(线)程间通信机制--eventfd
- SecureCRT 中文乱码问题
- linux下带密码的scp,linux下带密码的scp
- pc显示器分辨率 前端_明基透露索尼PS5可提供1440p分辨率选项
- 解决: Mysql安装时mysqld.exe报`应用程序无法正常启动(0xc000007b)`的问题
- 自定义Android中Dialog的弹出动画
- thinkPHP 空模块和空操作、前置操作和后置操作 详细介绍(十四)
- Reverse Integer(C++)
- iOS的iPhone最全尺寸、分辨率、PPI、Reader总结(包括XS、XS Max、XR)
- 商标有效期、续展期、宽展期分别是什么意思?
- 大学计算机课程日记,大学计算机实习日记
- linux驱动系列学习之DRM(十)
- 各国晶体三极管型号命名方法
- 实战案例|拒绝信息泄露,腾讯云助力电商对抗网络爬虫
- 【企业微信】JS-SDK引入实现向企微群聊发送图文消息
- MQTT服务的Qos