各种算法六
继续我们各种算法的终结和回顾滴呀;不知道是谁说的,程序=算法+;
然后今天我们继续来讨论我们的各种算法;
首先我们来判断一个数是偶数还是奇数呢,卧槽,你可能说这个太简单了,对,这个实在太简单了,但我的目的是抛砖迎玉,
后面我会给出用递归的方式来时实现,体现出我们的递归思想滴呀;
简单代码示意;
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 ,这些函数的调用仍然被看作是递归。这种类型的递归被成为交互递归