函数综合练习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; }