各种算法六

各种算法六

继续我们各种算法的终结和回顾滴呀;不知道是谁说的,程序=算法+;

然后今天我们继续来讨论我们的各种算法;

首先我们来判断一个数是偶数还是奇数呢,卧槽,你可能说这个太简单了,对,这个实在太简单了,但我的目的是抛砖迎玉,

后面我会给出用递归的方式来时实现,体现出我们的递归思想滴呀;

简单代码示意;

  public static void IsOdd(int x)
        {
           
            if (x % 2 == 0)
            {
                Console.WriteLine("{0}是偶数", x);
            }
            else
            {
                Console.WriteLine("{0}是奇数", x);
            }
        }

你tmd的一定会感叹这个太简单了,确实tmd的太简单了。接下来我们就看看递归的实现方式吧;

数的规律;

1.0被看做是偶数

2.一个数不是就是就是偶数

3.一个数的前面一个数是偶数,自己一定是奇数;

基于以上三条规律,我们就可以写出这样的递归代码了滴哎呀;递归是个很神奇的东西,自己去体会;

 

   public static bool IsOdd(int n)
        {
            return !(IsEven(n));//不是奇数就是o数的呀;
        }

  public static bool IsEven(int n)
        {
            if (n == 0)
            {
                return true;
            }
            else
            {
                return IsOdd(n - 1); //这样一部一部的往上推动滴呀;效果确实不错滴呀;效果也还可以滴呀;
            }
        }

效果还不错滴呀;

一提到递归很多人的第一反映就会自调用自己,然后,递归还有一个较为广泛的意义;函数被分成几个子函数,那么可以在更深层次上的应用调用递归,

例如:如果函数 f 调用函数 g ,而函数 g 反过来又调用函数 f ,这些函数的调用仍然被看作是递归。这种类型的递归被成为交互递归

 

posted @ 2016-12-25 12:45  咕-咚  阅读(129)  评论(0编辑  收藏  举报