1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
/* 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 */ #include<stdio.h> #include<stdlib.h> int N=10007; /*计算Fibonacci函数*/ int Fibonacci ( int n) { int Fn; if (n==1 || n==2) { Fn=1; } else { Fn = (Fibonacci(n-1) + Fibonacci(n-2))%N; } return (Fn); } int main( void ) { int n,tap=1,F1,F2,Fn; /*判断是否继续分析下一个数。*/ while (tap) { /*保证分析的数有效*/ do { printf ( "*************Fibonacci***************\n" ); /*简易菜单*/ printf ( "Please enter a positive integer for analysis:\n" ); scanf ( "%d" ,&n); } while (n<1); /*开始分析*/ Fn=Fibonacci(n); printf ( "%d\n" ,Fn); /*判断是否继续分析下一个数*/ printf ( "enter 1 to continue,enter 0 to quit:\n" ); scanf ( "%d" ,&tap); printf ( "\n" ); } printf ( "Thank You.\n" ); return 0; } |
采用递归的方法,一次运行多次分析,若想一次运行只分析一次,只需将while循环去掉即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/weixin_42245157/article/details/80385358