第4章-6.输出前 n 个Fibonacci数 (15分)

本题要求编写程序,输出菲波那契(Fibonacci)数列的前N项,每行输出5个,题目保证输出结果在长整型范围内。

Fibonacci数列就是满足任一项数字是前两项的和

(最开始两项均定义为1)的数列

例如:1,1,2,3,5,8,13,...。

输入格式:

输入在一行中给出一个整数N(1≤N≤46)。

输出格式:

输出前N个Fibonacci数,每个数占11位,每行输出5个。如果最后一行输出的个数不到5个,也需要换行。

如果N小于1,则输出"Invalid."

输入样例1:

7

输出样例1:

          1          1          2          3          5
          8         13

输入样例2:

0

输出样例2:

Invalid.
 1 # 输出前 n 个Fibonacci数
 2 # Author: cnRick
 3 # Time  : 2020-3-28
 4 Fibonacci = [1,1]
 5 n = int(input())
 6 if n < 1:
 7     print("Invalid.")
 8 elif 1 <= n < 2:
 9     if n == 1:
10         print("{:11d}".format(Fibonacci[0]))
11     else:
12         print("{:11d}".format(Fibonacci[1]))
13 else:
14     for i in range(2,n):
15         Fibonacci.append(Fibonacci[i-1] + Fibonacci[i-2])
16     cnt = 0
17     lastLineIndex = n // 5
18     for i in range(0,n):
19         print("{:11d}".format(Fibonacci[cnt]),end="")
20         cnt += 1
21         if((cnt % 5 == 0) or (cnt == n)):
22             print()
 

原文地址:https://www.cnblogs.com/dreamcoding/p/12588241.html

时间: 2024-10-11 23:22:52

第4章-6.输出前 n 个Fibonacci数 (15分)的相关文章

openjudge 7617:输出前k大的数

7617:输出前k大的数 查看 提交 统计 提问 总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 给定一个数组,统计前k大的数并且把这k个数从大到小输出. 输入 第一行包含一个整数n,表示数组的大小.n < 100000.第二行包含n个整数,表示数组的元素,整数之间以一个空格分开.每个整数的绝对值不超过100000000.第三行包含一个整数k.k < n. 输出 从大到小输出前k大的数,每个数一行. 样例输入 10 4 5 6 9 8 7 1

输出前 k 大的数

总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 给定一个数组,统计前k大的数并且把这k个数从大到小输出. 输入 第一行包含一个整数n,表示数组的大小.n < 100000.第二行包含n个整数,表示数组的元素,整数之间以一个空格分开.每个整数的绝对值不超过100000000.第三行包含一个整数k.k < n. 输出 从大到小输出前k大的数,每个数一行. 样例输入 10 4 5 6 9 8 7 1 2 3 0 5 样例输出 9 8 7 6 5 分

OpenJ_Bailian 7617 输出前k大的数

题目传送门 OpenJ_Bailian 7617 描述 给定一个数组,统计前k大的数并且把这k个数从大到小输出. 输入 第一行包含一个整数n,表示数组的大小.n < 100000.第二行包含n个整数,表示数组的元素,整数之间以一个空格分开.每个整数的绝对值不超过100000000.第三行包含一个整数k.k < n. 输出 从大到小输出前k大的数,每个数一行. 样例输入 10 4 5 6 9 8 7 1 2 3 0 5 样例输出 9 8 7 6 5 解题思路: emmmmm直接sort排序然后输

(分治)输出前m大的数。。。

描述给定一个数组包含n个元素,统计前m大的数并且把这m个数从大到小输出.输入第一行包含一个整数n,表示数组的大小.n < 100000.第二行包含n个整数,表示数组的元素,整数之间以一个空格分开.每个整数的绝对值不超过100000000.第三行包含一个整数m.m < n.输出从大到小输出前m大的数,每个数一行. 思路: 排序后输出(nlogn) 用分治处理(n+mlogm) 关键:n时间内将前m大的都移到最右边 引入操作arrangeRight(k) :把数组(或数组的一部分)前k大的都弄到最

浙大版《C语言程序设计(第3版)》题目集 练习2-13 求N分之一序列前N项和 (15 分)

练习2-13 求N分之一序列前N项和 (15 分) 本题要求编写程序,计算序列 1 + 1/2 + 1/3 + ... 的前N项之和. 输入格式: 输入在一行中给出一个正整数N. 输出格式: 在一行中按照"sum = S"的格式输出部分和的值S,精确到小数点后6位.题目保证计算结果不超过双精度范围. 输入样例: 6 输出样例: sum = 2.450000 思路:每次循环分母加一. 代码如下: #include<stdio.h> int main() { int i, n,

浙大版《C语言程序设计(第3版)》题目集 练习2-14 求奇数分之一序列前N项和 (15 分)

练习2-14 求奇数分之一序列前N项和 (15 分) 本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和. 输入格式: 输入在一行中给出一个正整数N. 输出格式: 在一行中按照"sum = S"的格式输出部分和的值S,精确到小数点后6位.题目保证计算结果不超过双精度范围. 输入样例: 23 输出样例: sum = 2.549541 思路:每次循环分母加二.代码如下: #include<stdio.h> int main() { int i, n

浙大版《C语言程序设计(第3版)》题目集 习题2-6 求阶乘序列前N项和 (15 分)

习题2-6 求阶乘序列前N项和 (15 分) 本题要求编写程序,计算序列 1!+2!+3!+? 的前N项之和. 输入格式: 输入在一行中给出一个不超过12的正整数N. 输出格式: 在一行中输出整数结果. 输入样例: 5 输出样例: 153 思路:利用函数阶乘累加. 代码如下: #include <stdio.h> long factorial(long n); int main() { long n; scanf("%ld",&n); printf("%l

浙大版《C语言程序设计(第3版)》题目集 练习2-12 输出华氏-摄氏温度转换表 (15 分)

练习2-12 输出华氏-摄氏温度转换表 (15 分) 输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper].且每次增加2华氏度的华氏-摄氏温度转换表. 温度转换的计算公式:C=5×(F?32)/9,其中:C表示摄氏温度,F表示华氏温度. 输入格式: 在一行中输入2个整数,分别表示lower和upper的值,中间用空格分开. 输出格式: 第一行输出:"fahr celsius" 接着每行输出一个华氏温度fahr(整型)与一

习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)

本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0)之间的所有Fibonacci数.所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列. 函数接口定义: int fib( int n ); void PrintFN( int m, int n ); 其中函数fib须返回第n项Fibonacci数:函数PrintFN要在一行中输出给定范围[m, n]内的所有Fibonacci数,相邻数字间有一个空格,行末不得有多余