主要是为了熟悉一下迭代法。程序本身不难。 使用迭代法函数是记得传入的应该是引用或者指针,否则回来就没了。 /* 求分数之和 */ #include <stdio.h> int gcd(long s1,long s2) { // 辗转相除法求最大公约数 int m = 0,n = 0,r = -1; m = (int)s2; n = (int)s1; while (r) { r = m % n; m = n; n = r; } return m; } void sumFib(int n, long& s1, long& s2) { // 求分数数组之和,采用化为同分母的形式 long a=1,b=2; int n_gcd = 1; while (a <= n) { s2 = s2*a + s1*b; s1 *= a; ++a,++b; n_gcd = gcd(s1,s2); s1 /= n_gcd; s2 /= n_gcd; } } main() { long s1 =1 ,s2 = 0; long &ps1=s1,&ps2=s2; int n; scanf("%d",&n); sumFib(n,ps1,ps2); printf("%d/%d",s2,s1); } /* 小母牛的繁殖问题 */ #include <stdio.h> int Cow(int n) { if (n == 1) retur