目录
前言
对遇到的题的简单梳理
一、如何求两个正整数的最大公约数与最小公倍数,
# include <stdio.h>
int main()
{
int m = 0;
int n = 0;
scanf_s("%d %d", &m, &n);
int a = 0;
int x = m;
int y = n;
while (1)
{
a = m % n;\\辗转相除法
if (a == 0)
{
break;
}
m = n;
n = a;
}
num = (x * y) / n;\\最大公约数与最小公倍数乘积等于mn的乘积
printf("%d", n );\\最大公约数
printf("%d", num );\\最小公倍数
return 0;
}
二、斐波那契额数列
1.小乐乐走台阶 ,青蛙跳台阶
int Fn(int n)
{
if (n <= 2)
{
return n;
}
else
{
return Fn(n - 1) + Fn(n - 2);
}
}
int main()
{
int n = 0;
scanf("%d", &n);
int sum = Fn(n);
printf("%d", sum);
return 0;
}
2 设计思路
当台阶数n=1时,我们只有1种走法;n=2时,我们有两种走法;n=3时,如果我们第一步走的是1个台阶,那么问题就转换为如何走2个台阶,有两种,如果我们第一步走2个台阶那么问题就转化为如何走1个台阶。因此我们可以设计一个函数fib(n)=fib(n-1)+fib(n-2),最后我们递归解决这道题
总结
以上就是今天要讲的内容,本文仅仅简单介绍了辗转相除法和递归的使用。