C语言编程:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
#include<stdio.h>
/*
函数名:Gcd
参数列表:长整型数M,N(M>N)
函数功能:用欧几里得算法求最大公约数
返回值:M与N的最大公约数
*/
longGcd(longM,longN)
{
longRem;
while(N>0)
{
Rem=M%N;
M=N;
N=Rem;
}
returnM;
}
/*
函数名:fun
参数列表:单项分子a,单项分母b,最终分子alast,最终分母blast,项数n
函数功能,分数求和
返回值:无
*/
int fun(int*a,int*b,long*alast,long*blast,intn)
{
if(n==0)ﻩﻩﻩﻩﻩ//结束递归条件
{
return-1;
}
int i;
ﻩ
*alast=(*alast)*(*b)+(*blast)*(*a);
*blast=(*blast)*(*b);//对最终值进行约分
longfactor=Gcd(*alast,*blast);//最大公约数
*alast=*alast/factor;
*blast=*blast/factor;
printf("+%d/%d",*a,*b);ﻩﻩﻩ系
*b=*a-*b;
n--;
fun(a,b,alast,blast,n);//递归
return0;
}
intmain()
{
int n;
int a=3,b=2;
longalast=2,blast=1;
printf("Inputn=");ﻩﻩﻩﻩ//输入需要求的项数
scanf("%d",&n);
printf("2/1");
fun(&a,&b,&alast,&blast,n-1);
printf("=%ld/%ld\n",alast,blast);
return0;
}
扩展资料:
一、return在函数中的作用
我们如果将函数看做一个加工厂,参数就是我们向加工厂投入的原料,具体的函数功能实际上就是加工的过程,而return语句代表返回值,就是加工厂在实现加工之后给“投资人”的成品。
二、return语句的特点
1、在函数当中,遇到return语句之后就意味着函数运行的结束,在此之后的代码是不运行的。
2、它不支持任何运算也没有任何内建方法,和任何其他的数据类型比较是否相等时永远返回false,也可以将None赋值给任何变量。
3、执行到return语句时,会退出函数,return之后的语句不再执行。但将return语句放在try语句块中,是个例外。
三、return的默认值:return函数默认的返回值为undefined。