常用算法回顾-迭代法
在做培训的很多时候是从来不讲算法的,搬到网上来总结一下:
迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程.(这个上网查询一下就知道了).
分析算法应用步骤:
1.确定迭代变量. 2.确定迭代关系 3.迭代控制
常规举例:
验证角谷猜想。日本数学家谷角静夫在研究自然数时发现了一个奇怪现象:对于任意一个自然数 n ,若 n 为偶数,则将其除以 2 ;若 n 为奇数,则将其乘以 3 ,然后再加 1 。如此经过有限次运算后,总可以得到自然数 1 。人们把角谷静夫的这一发现叫做“角谷猜想”。
分析:1.确定迭代变量n 2.确定地带关系 这里有两种迭代关系 n=n/2或者n=n*3+1 3.迭代控制 通常就是找到循环结束条件 这里就是当n=1结束,验证猜想成功.
主要代码如下:
1 static void Main(string[] args)
2 {
3 Console.WriteLine("输入一个需要验证的自然数:");
4 int n = Convert.ToInt32(Console.ReadLine());
5 while (n != 1)
6 {
7 if (n%2==0)
8 {
9 n = n / 2;
10 }
11 else
12 {
13 n = n * 3 + 1;
14 }
15 }
16 Console.WriteLine("验证成功!");
17 }
2 {
3 Console.WriteLine("输入一个需要验证的自然数:");
4 int n = Convert.ToInt32(Console.ReadLine());
5 while (n != 1)
6 {
7 if (n%2==0)
8 {
9 n = n / 2;
10 }
11 else
12 {
13 n = n * 3 + 1;
14 }
15 }
16 Console.WriteLine("验证成功!");
17 }
完毕.