C语言:
1 /* 2 ----------------------------------- 3 当n = 1, 只有1中跳法;当n = 2时,有两种跳法;当n = 3 时,有3种跳法;当n = 4时,有5种跳法;当n = 5时,有8种跳法 4 所以:tiaofa(n) 5 n=1时,tiaofa(1) = 1 6 n=2时,tiaofa(2) = 2 7 n>2时,tiaofa(n) = tiaofa(n-1) + tiaofa(n-2) 8 ----------------------------------- 9 */ 10 11 # include <stdio.h> 12 13 int tiaofa(int n) 14 { 15 int i, tf1, tf2, tf3; 16 tf1 = 1; 17 tf2 = 2; 18 19 if (n == 1) 20 tf3 = 1; 21 else if (n ==2) 22 tf3 = 2; 23 else 24 { 25 for (i=3; i<=n; i++) 26 { 27 tf3 = tf1 + tf2; 28 tf1 = tf2; 29 tf2 = tf3; 30 } 31 } 32 33 return tf3; 34 } 35 36 int main(void) 37 { 38 int n; 39 char ch; 40 do 41 { 42 printf("请输入台阶数(正整数):"); 43 scanf("%d", &n); 44 printf("%d个台阶有%d种跳法。\n", n, tiaofa(n)); 45 printf("\n你想继续吗(Y/N):"); 46 flushall(); 47 scanf("%c", &ch); 48 } while (ch==‘y‘ || ch==‘Y‘); 49 return 0; 50 } 51 52 /* 53 在Vc++6.0中的输出结果为: 54 ----------------------------------- 55 56 请输入台阶数(正整数):1 57 1个台阶有1种跳法。 58 你想继续吗(Y/y):Y 59 请输入台阶数(正整数):2 60 2个台阶有2种跳法。 61 你想继续吗(Y/y):Y 62 请输入台阶数(正整数):3 63 3个台阶有3种跳法。 64 你想继续吗(Y/y):Y 65 请输入台阶数(正整数):4 66 4个台阶有5种跳法。 67 你想继续吗(Y/y):Y 68 请输入台阶数(正整数):5 69 5个台阶有8种跳法。 70 你想继续吗(Y/y):N 71 Press any key to continue 72 73 ----------------------------------- 74 */
Python:
def tf(n): if n==1: return 1 elif n==2: return 2 else: return tf(n-1)+tf(n-2) n = int(input(‘请输入台阶数(正整数):‘)) tf_n = tf(n) print(tf_n)
原文:http://www.cnblogs.com/UncleYong/p/7082784.html