6-4 使用函数求最大公约数 分数 10 全屏浏览题目 作者 张高燕 单位 浙大城市学院 本题要求实现一个计算两个数的最大公约数的简单函数。
时间: 2024-05-01 07:07:35 浏览: 176
题目描述:
实现一个函数,计算两个正整数的最大公约数,并返回结果。
函数接口定义:
int gcd( int a, int b );
其中a和b是用户传入的参数,均为正整数,并且1≤a,b≤10^9。函数gcd返回a和b的最大公约数。
样例:
输入样例:
15 30
输出样例:
15
题目分析:
本题考察的是求最大公约数的算法,常见的算法有辗转相除法和更相减损法。这里我们使用辗转相除法实现。
辗转相除法:又称欧几里得算法,是求最大公约数的一种方法。其基本思想是用大数除以小数,再用余数去除除数,如此反复,直到余数为零为止。若最后的除数为1,则原数互质。
具体实现可以使用递归或循环。
时间复杂度:O(log(min(a,b)))
参考代码:
相关问题
7-1输出带框文字 分数5全屏浏览题目 切换布局作者张高燕单位浙大城市学院本题要求编写程序,输出指定的带框文字。输入格式:本题无输入输出格式:按照下列格式输出带框文字。WeLcome代码长度限制时间限制内存限制
#include <iostream>
using namespace std;
int main() {
cout << "+------------------------+" << endl;
cout << "| |" << endl;
cout << "| WeLcome |" << endl;
cout << "| |" << endl;
cout << "+------------------------+" << endl;
return 0;
}
正整数逆序输出 作者 张高燕 单位 浙大城市学院 输入一个正整数n,将其逆序输出。要求定义和调用函数reverse(num),其功能是将num逆序输出,要求用递归实现。例如,输入12345,输出54321。
张高燕老师的代码示例中,可以使用递归的方式来实现正整数的逆序输出。这里是一个用Python编写的函数`reverse`,它接受一个正整数作为参数,并通过递归的方式将其每一位数字反转:
```python
def reverse(num):
# 基线条件:如果输入的是0或1,直接返回
if num < 10:
return str(num)
# 递归条件:将最后一位数字取出并乘以10的相应次幂,然后递归处理剩余部分
else:
last_digit = num % 10
rest = num // 10
return reverse(rest) + str(last_digit)
# 主函数,接收用户输入的正整数并调用逆序函数
def main():
n = int(input("请输入一个正整数:"))
reversed_num = reverse(n)
print("逆序输出的结果为:", reversed_num)
if __name__ == "__main__":
main()
```
当你运行这个程序并输入一个正整数,如12345,会得到输出54321。
阅读全文