设计一个函数MaxCommonFactor(),利用欧几里德算法(也称为辗转相除法)计算两个正整数的最大公约数。
查看答案
设计函数MaxCommonFactor(),计算两个正整数的最大公约数。[提示:可以利用如下三个性质实现。性质1:当a>b时,计算a与b的公约数等价于计算a-b于b的公约数。性质2:当a
用下面给定的代码调用,实现函数int CommonFactors(int a, int b),计算a和b的所有公约数。第一次调用返回最大公约数,以后只要再使用相同参数调用,每次返回下一个小一些的公约数。无公约数时返回-1。int main() {int sub;while ((sub =CommonFactors(100, 50)) > 0) {static int counter = 1;printf("Common factor %d is %d\n", counter++, sub);}return 0;}
设计一个模块cmnfctr,计算给定的两个整数的所有公约数。CalcCommonFactorOf()用来设定参与计算的两个整数,然后每调用一次NextCommonFactor()得到一个公约数,按照从大到小的顺序给出。用下面给定的代码调用此模块。int main() {int sub;CalcCommonFactorOf(100, 50);while ((sub =NextCommonFactor()) > 0) {static int counter = 1;printf("Common factor %d is %d\n", counter++, sub);}return 0;}
阅读程序,选择程序的运行结果。#include int Try(int n) {if (n > 0)return (n * Try(n - 2));elsereturn 1;}int main() {printf("%d", Try(5));return 0;}
A. 15
B. 120
C. 1
D. 其他答案都是错的