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)




============================= 提升自己 ==========================

声明:如有侵权,请联系删除。

============================= 升职加薪 ==========================