首页 > 其他 > 详细

零基础学C#算法(零基础学算法——C#版)

时间:2014-01-16 20:19:13      阅读:360      评论:0      收藏:0      [点我收藏+]

今天本人正在看算法方面的书。作为高中数学忘得差不多的渣渣,实在无力。无奈找了本书,c语言写的,哎。我就把其中代码翻译成C#版好了。此坑能否填平,看我耐性和网络支持条件吧。有生之年能看完的话我会把整个项目上传的。

 那就开坑吧。为了直观性舍弃代码规范性,所以如果有人不幸看到,不要吐槽,谢谢。

从第一章开始。

   public class _1_1看商品猜价格

bubuko.com,布布扣
    {
         public void 看商品猜价格()
         {
             Console.WriteLine("设置商品真实价格");
             int 真正价格 = int.Parse(Console.ReadLine());
             Console.WriteLine("设置猜测价格");
             int 猜测价格 = int.Parse(Console.ReadLine());
             int 猜测次数 = 1;
             while (猜测价格 != 真正价格)
             {
                 猜测次数++;
                 Console.WriteLine("继续猜");
                 猜测价格 = int.Parse(Console.ReadLine());
             }
             Console.WriteLine("你猜了" + 猜测次数+"次才猜中");

             //Console.WriteLine("  ");
        }
     }
bubuko.com,布布扣

 

   public class _1_2斐波那契数列

bubuko.com,布布扣
    {
         public long i = 0;
         public void 计算斐波那契数列()
         {
             //1.3.2 顺推实例:斐波那契数列
            Console.WriteLine("设置N");
             long N = long.Parse(Console.ReadLine());

             tailrecursion(11, N);

             //long sum = 0;
            
//for (long i = 0; i <= N; i++)
            
//{
            
//    Console.WriteLine(i + " " + sum);
            
//    sum += 斐波那契数列(i);            
            
//
        }

         public void tailrecursion(long a, long b, long n)
         {
             if (n==0)
             {
                 return;
             }           
             i++;
             Console.WriteLine(i + " " + (a + b)); 
             tailrecursion(b,a+b, n - 1);
             n--;
         }

         public long 斐波那契数列(long n)
         {
             if (n <= 2)
             {
                 return 1;
             }
             else
             {
                 return 斐波那契数列(n - 1) + 斐波那契数列(n - 2);
             }     
         }


     }
bubuko.com,布布扣

实现了2种 

网上那种 计算斐波那契数列的C#实现(注释的代码)完全是垃圾!垃圾的地方在于递归方法调用2次,在N越来越大的时候非常明显,而用尾递归(tailrecursion
的话飞速算完。不幸的原文用的就是我注释的那部分方法。

 

  class _1_3用逆推法求最初存钱数

bubuko.com,布布扣
    {
        public void 求最初存钱数()
         {
             int 本息 = 1000;
             Double 年利率 = 0.0171;

             double[] 本利合计 =new double[49];
             int i;
             本利合计[48] = 本息;
             for ( i = 47;i > 0; i--)
             {
                 本利合计[i] = (本利合计[i + 1] + 本息) / (1 + 年利率/12);                  
             }
             for ( i = 48; i > 0; i--)
             {
                 Console.WriteLine(""+i+"月末本利合计:"+本利合计[i]);    
             }
            
         }       

     }
bubuko.com,布布扣

 

   class _1_4用枚举法完成填数游戏

bubuko.com,布布扣
    {
         public void 用枚举法完成填数游戏()
         {

             int i1, i2, i3, i4, i5;
             long multi, result;
             for (i1 = 1; i1 <= 9; i1++)
             {
                 for (i2 = 0; i2 <= 9; i2++)
                 {
                     for (i3 = 0; i3 <= 9; i3++)
                     {
                         for (i4 = 0; i4 <= 9; i4++)
                         {
                             for (i5 = 1; i5 <= 9; i5++)
                             {
                                 multi = i1 * 10000 + i2 * 1000 + i3 * 100 + i4 * 10 + i5;
                                 result = i5 * 111111;
                                 if (multi * i1 == result)
                                 {
                                     Console.WriteLine(i1 + "" + i2 + "" + i3 + "" + i4 + "" + i5);
                                     Console.WriteLine("X" + i1);
                                     Console.WriteLine("____________");
                                     Console.WriteLine(i5 + "" + i5 + "" + i5 + "" + i5 + "" + i5 + "" + i5);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
bubuko.com,布布扣


DDD

零基础学C#算法(零基础学算法——C#版)

原文:http://www.cnblogs.com/zeusro/p/3518172.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!