做作业的问题
关于最大公约数的题目,目前学的不多,只学到for和while那里int gcd(int n, int m) {
if (m == 0) {
return n;
}
return gcd(m, n % m);
}
以上这个是求最大公约数的方程
要求一个函数f(int i)
我的思路是这样
f(30)=gcd(30,30)=30 第一次
f(20)=gcd(20,f(30))=10 第二次
f(10)=gcd(10,f(20))=10 第三次
f(5)=gcd(5,f(10))=5 第四次
要求是第一次输入f(30)结果为30
接着输入f(20)结果为10
继续输入f(10)结果为10
。。。。f(5)。。。 5。
每一步看的话就是循环套着循环,但具体怎么保存数值,比如说当f(30)=30之后输入f(20),怎么让函数知道我要得到20和f(30)的最大公约数?
这个问题我之前在论坛里发过了,但没有解决。之后试了很多方法但还是不知道自己在写什么,求会的人帮帮忙,非常想知道解决办法。
ps:不能用global variable和static。