常见小算法的实现(一)

  1. 概述
    • 最近时间开始空余,所以,就抽时间复习一下算法和数据结构,顺便实现一些小的常用算法.
    • 如果大家有更好的实现方法,可以尽情留言.
  2. 实现环境
    • Dev-C++ 4.9.9.2
    • window XP
    3.小问题
    (1)计算1/1+1/2+2/3+3/5+5/8......前n项之和。
  •  分析:这是学习C语言必然会遇到的一道题,实现起来并不麻烦,但是还是有一些值得思考的地方
  • 算法实现代码:     
  #include <stdio.h>
  #include<stdlib.h>
// Non-recursive algorithm
double count(int n )
{
  double i=1,j=1,temp,k=1;
  double sumValue=0.0;
  while(k<=n)
  {
     sumValue+=i/j;
     temp=i+j;
     i=j;
     j=temp;
     k++;    
  }
  return sumValue;   
}
//Recursive algorithmdouble
void func(int n, double a,double b)

{
       if(n==1)
           return a/b;
       else
           return a/b+func(n-1,b,a+b);          
       }
int main(void)
{
    double count1;
   // count1=count(2);
   count1=func(2,1,1);
    printf("Total: %f\n", count1);
    system("pause");
    return 0;
}      

posted on 2009-10-08 18:01  Creative Common  阅读(174)  评论(0编辑  收藏  举报

导航