python 题目:斐波那契数列计算;题目:站队顺序输出;题目:合法括号组合的生成;题目:用户登录(三次机会)

斐波那契数列计算 B

描述

斐波那契数列如下:

F(0) = 0, F(1) = 1

F(n) = F(n-1) + F(n-2)

编写一个计算斐波那契数列的函数,采用递归方式,输出不超过n的所有斐波那契数列元素

调用上述函数,完成如下功能:

用户输入一个整数n,输出所有不超过n的斐波那契数列元素、输出数列的元素和及平均数,输出按照顺序,用英文逗号和空格分割

此题目为自动评阅,请严格按照要求规范输入和输出。

def jebona(n):
     if n==0:
          return 0
     elif n == 1:
          return 1
     else:
          return jebona(n-1) + jebona(n-2)

n=eval(input())
len = 0
ret = 0
ls=[]
for i in range(0,n+1):
     ret = ret + jebona(i)
     len += 1
     ls.append(str(jebona(i)))
ls.append(str(ret))
ls.append(str(ret//len))
print(", ".join(ls))

站队顺序输出

描述

有一群人站队,每人通过一对整数(h, k)来描述,其中h表示人的高度,k表示在此人前面队列中身高不小于此人的总人数。

实现一个算法输出这个队列的正确顺序。

输入:

[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]

输出:

[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]
from operator import itemgetter
queue = eval(input())

queue.sort(key = itemgetter(1))
queue.sort(key = itemgetter(0), reverse = True)

output = []
for item in queue:
    output.insert(item[1], item)
print(output)

合法括号组合的生成

描述

给定括号的个数n,编写程序生成所有格式正确的括号组合。

def foo(output, open, close, pairs):
     if open == pairs and close ==pairs:
          ls.append(output)
     else:
          if open<pairs:
               foo(output+"(", open+1, close, pairs)
          if close<open:
               foo(output+")", open, close+1, pairs)

n = eval(input())
ls=[]
foo(‘‘,0,0,n)
print(ls)

用户登录(三次机会)

描述

给用户三次输入用户名和密码的机会,要求如下:

1)如输入第一行输入用户名为‘Kate’,第二行输入密码为‘666666’,输出‘登录成功!’,退出程序;

2)当一共有3次输入用户名或密码不正确输出“3次用户名或者密码均有误!退出程序。”。

#name_passwd.py
i=0
ret=1
for i in range(0,3):
     name=input()
     passwd=input()
     if name == "Kate" and passwd == "666666":
          ret = 0;
          break;
if ret == 0:
     print("登录成功!")
else:
     print("3次用户名或者密码均有误!退出程序。")

原文地址:https://www.cnblogs.com/python-xkj/p/9248398.html

时间: 2024-08-04 18:21:40

python 题目:斐波那契数列计算;题目:站队顺序输出;题目:合法括号组合的生成;题目:用户登录(三次机会)的相关文章

python实现斐波那契数列(Fibonacci sequence)

使用Python实现斐波那契数列(Fibonacci sequence) 斐波那契数列形如 1,1,2,3,5,8,13,等等.也就是说,下一个值是序列中前两个值之和.写一个函数,给定N,返回第N个斐波那契数字.例如,1返回1 6返回8 我选择了两种方法,一种是将list变成一个队列,另一个则是使用环形队列.不多说,直接上代码:后面我会对为什么这样实现做一个解释 第一个是使用队列的方式: 1 def fibonacciSeq(num): 2 fibonacciSeqList = [] 3 for

LintCode Python 入门级题目 斐波纳契数列

原题描述: 查找斐波纳契数列中第 N 个数. 所谓的斐波纳契数列是指: 前2个数是 0 和 1 . 第 i 个数是第 i-1 个数和第i-2 个数的和. 斐波纳契数列的前10个数字是: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ... 题目分析: 开始的想法,通过递归实现输出fib(n-1)+fib(n-2)的值计算,原理正确,算法复杂度高,导致运行时间超过lintcode限制: class Solution: # @param n: an integer # @retur

《剑指Offer》题目——斐波拉契数列

题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项.(n<=39) 题目分析:如果使用简单的递归,很容易造成栈溢出.采用递推的方式即可. 代码: public class Fibonacci { public static int fibonacci(int n){ int res[] = new int[2]; res[0]=1; res[1]=1; int temp = 0; if(n==0) return 0; if(n<=2) return res[

斐波那契数列计算时间复杂度之彻底分析

#include<stdio.h> #include<time.h> 递归法: 优点:形式简洁,便于人理解 缺点:虽说递归法以空间换时间,但一旦n变大,它的速度的确比非递归法慢得多,例如对n=40,测试递归法所用时间为8~9s;而非递归法只需要远不到1s. 原因是,递归过程中,系统建立堆栈来保存上一层状态信息, 和退栈获取还原系统状态都要有开销的.系统做的事情不少, 所以效率要低. 例如,f(5)的话,实际上会调用这个函数15次,有15个临时栈区,试想f(100)有多吓人...一般

python实现斐波那契数列

斐波那契数列的发明者是意大利数学家昂纳多.斐波那契(Leonardo Fibonacci).斐波那契数列又被称为黄金分割数列,或兔子数列.它指的是这样一个数列:0 1 1 2 3 5 8 13 21 34 ....在数学上,斐波那契数列以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2(N>=2,n属于N*).简单的说明斐波那切数列的规律为:第1个数为0,第2个数为1,之后每个数值都是前两位的和. #!/usr/bin/python3 # coding=utf-8

【Python】Python实现斐波那契数列

本节主要实现以下目标: 1.递归方法输出斐波那契数列第n个元素的值 2.用迭代器和生成器获取前n个斐波那契数列列表 3.将两种方法写在同一类中 1.递归方法输出斐波那契数列第n个元素的值 2.用迭代器和生成器获取前n个斐波那契数列列表 3.将两种方法写在同一类中 原文地址:https://www.cnblogs.com/haizhibin1989/p/9158935.html

python之斐波纳契数列

斐波纳契数列 斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........ 这个数列从第3项开始,每一项都等于前两项之和. 示例1: 1 def sum(arg1,arg2,stop): 2 arg3 = arg1 + arg2 3 print(arg3,) 4 if arg3 < 10: 5 sum(ar

使用Python实现斐波那契数列

1.递归方法输出斐波那契数列第n个元素的值 2.用迭代器和生成器获取前n个斐波那契数列列表 3.将两种方法写在同一类中 原文地址:https://www.cnblogs.com/legendjaking/p/10587314.html

python 实现斐波那契数列

def fib(n): a,b=0,1 while a<n: print(a,end=" ") a,b=b,a+b print() fib(2000) 输出: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597