轩辕六宝,甘露露个人资料,都市嬉美图
一、列出fibonacci数列的前n个数
using system; using system.collections.generic; using system.linq; using system.text; namespace fibonacci { class program { static void main(string[] args) { cal(20); cal2(20); //运行结果相同 } /*需求:列出fibonacci数列的前n个数*/ //方案一:迭代n次,一次计算一项 public static void cal(int n) { int f1 = 1; int f2 = 1; int f = 0; for (int i = 1; i <= n; i++) { if (i == 1) { console.write(f1); console.write(" "); } else if (i == 2) { console.write(f2); } else { f = f1 + f2; f2 = f1; f1 = f; console.write(" "); console.write(f); } } } //方案二:迭代n/2次,一次计算两项 public static void cal2(int n) { int f1 = 1; int f2 = 1; for (int i = 1; i <= n / 2; i++) { console.write(" "); console.write(f1); console.write(" "); console.write(f2); f1 = f1 + f2; f2 = f2 + f1; } }
二、求出fibonacci数列第n个数字(递归)
namespace fibonacci { class program { static void main(string[] args) { string n = console.readline(); int integer = convert.toint32(n); console.writeline("{0}",f(integer)); } /*需求:求出fibonacci数列第n个数字*/ //递归 public static int f(int n) { if (n == 1) return 1; if (n == 2) return 1; else return f(n - 1) + f(n - 2); } } }
三、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
问题分析:其兔子数目依旧是按1,1,2,3,5…的顺序进行排列。其本质仍为斐波那契数列。
解决:按照一中的方案二进行即可。
namespace fibonacci { class program { static void main(string[] args) { //与方案二相同 string n = console.readline(); int integer = convert.toint32(n); int f1 = 1; int f2 = 1; for (int i = 1; i <= integer; i++) { console.write("{0} {1}",f1,f2); console.write(" "); if (i%2==0) console.writeline("\n"); f1 = f1 + f2; f2 = f2 + f1; } } } }
若后续有相关问题,余则继续补充。
愿诸位朋友及时指正!
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论