函数综合练习2059+1011

2059 上台阶 easy

现在小瓜想通过台阶走上平台,最底层(小瓜所在的层)编号为1,最顶层编号为n。由于小瓜的腿比较短,他一次只能向上走1级或者2级台阶。小瓜想知道他有多少种方法走上平台,你能帮帮他吗?

输入

一个整数n,其中2≤n≤25。

输出

一行一个整数,表示小瓜上台阶的方案数

数据范围

对于12%的数据,2≤n≤5;
对于28%的数据,2≤n≤10;
对于100%的数据,2≤n≤25;

输入样例

4

输出样例

3

样例解释

从台阶1到台阶4,可能方案有:

1→2→3→4,1→2→4,1→3→4,共3种。

#include <iostream>
using namespace std;

int n, a[30], book[30];

int doit(int k) {
    if (k == 1 || k == 2) {
        return a[k] = 1;
    }
    
    if (a[k] != 0) {
        return a[k];
    }
    
    return a[k] = doit(k-1) + doit(k-2);
}

int main() {
    cin >> n;
    cout << doit(n) << endl;
    
    return 0;
}

1011 最大公约数GCD

输入2个正整数A,B,求A与B的最大公约数。

输入
2个数A,B,中间用空格隔开。(1<= A,B <= 10^9)

输出

输出A与B的最大公约数。

输入样例

30 105

输出样例

15
#include <iostream>
using namespace std;

int a, b;

int gcd(int x, int y) {
    if (x == 0)    return y;
    if (y == 0)    return x;
    
    return gcd(y, x % y);
}

int main() {
    cin >> a >> b;
    cout << gcd(a, b) << endl;
    
    return 0;
}
posted @ 2021-06-17 13:46  tianluman  阅读(69)  评论(0编辑  收藏  举报