C#练习题答案: 摩门经【难度:2级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战

这篇博客提供了10个不同解答,针对2级难度的C#编程题目——摩门经问题。通过这些答案,读者可以深入理解C#编程基础和算法应用。
摘要由CSDN通过智能技术生成

摩门经【难度:2级】:

答案1:

public class Kata
{
  public static long Mormons(long startingNumber, long reach, long target)
  {
      if( target <= startingNumber )
         return 0;
         
      return 1 + Mormons(startingNumber + startingNumber*reach, reach, target); 
  }
}

答案2:

public class Kata
{
  public static long Mormons(long startingNumber, long reach, long target)
  {
    if(startingNumber >= target){
      return 0;
    }
    long missionEnd = startingNumber * reach + startingNumber;
    return 1 + Mormons(missionEnd, reach, target); 
  }
}

答案3:

public class Kata
{
  public static long Mormons(long mormons, long reach, long target)
  {
    long missions = 0;
    if(mormons>=target)return missions;
    mormons+=mormons*reach;
    missions++;
    if(mormons<target) missions+=Mormons(mormons, reach,target);    
    return missions;
  }
}

答案4:

public class Kata
{
  public static long Mormons(long startingNumber, long reach, long target)
  {
    return startingNumber >= target ? 0 : Mormons(startingNumber += startingNumber * reach, reach, target) + 1;
  }
}

答案5:

public class Kata
{
  public static long Mormons(long startingNumber, long reach, long target)
  {
    int _count = 0;

            while (startingNumber < target)
            {
                _count++;
                return _count + Mormons(startingNumber + startingNumber * reach, reach, target);
            }
            return 0;
  }
}

答案6:

public class Kata
{
  public static long Mormons(long startingNumber, long reach, long target)
  {
    return Mission(startingNumber, reach, target);
  }
  
  public static long Mission(long s, long r, long t){
    if (s >= t) return 0;
    return 1 + Mission(s + (r * s), r, t);
  }
}

答案7:

using System;

public class Kata
{
  public static long Mormons(long startingNumber, long reach, long target)
  {
    long m = 0;
    long c = startingNumber;
    
    while(c < target)
    {
    c = c + (c * reach);
    m++;
    }
    
    return m;
  }
}

答案8:

   public class Kata
    {
        public static long Mormons(long s, long r, long t)
        {
            long res = 0;
            while(s < t)
            {
                s = s * r + s;
                res++;
            }
            return res;
        }
    }

答案9:

public class Kata
{
  public static long Mormons(long mormons, long reach, long target)
  {
    if(mormons>=target) return 0;
    return 1+ Mormons(mormons*(reach+1), reach, target);
  }
}

答案10:

public class Kata
{
  public static long Mormons(long startingNumber, long reach, long target)
  {
    if (startingNumber >= target) return 0;
            else return 1 + Mormons(startingNumber * reach + startingNumber, reach, target);
  }
}



1. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。 答:public class MainClass { public static void Main() { Console.WriteLine(Foo(30)); } public static int Foo(int i) { if (i <= 0) return 0; else if(i > 0 && i <= 2) return 1; else return Foo(i -1) + Foo(i - 2); } } 2.C#中的委托是什么?事件是不是一种委托? 答 :委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的引用。 是,是一种特殊的委托。 3.override与重载的区别 答 :overrider与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要。 Overrider是进行基类中函数的重写。为了适应需要。 4.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理? 答 : this.Server.Transfer 5.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty? 答: foreach (System.Windows.Forms.Control control in this.Controls) { if (control is System.Windows.Forms.TextBox) { System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ; tb.Text = String.Empty ; } } 6.请编程实现一个冒泡排序算法? 答: int [] array = new int[] {1,3,5,8,0,2,3,10,8,10}; int temp = 0 ; for (int i = 0 ; i < array.Length - 1 ; i++) { for (int j = i + 1 ; j < array.Length ; j++) { if (array[j] < array[i]) { temp = array[i] ; array[i] = array[j] ; array[j] = temp ; } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值