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

这是一篇关于C#基础练习题的博客,包含了10种不同的解决方案,难度级别为1级,适合初学者挑战。
摘要由CSDN通过智能技术生成

完成该模式#2【难度:1级】:

答案1:

using System;
using System.Text;
public class Kata
{
   public string Pattern(int n)
   {
     StringBuilder strBuilder = new StringBuilder();
     for ( int i = 0; i < n; i++ )
     {
       strBuilder.Append(i == 0 ? "" : "\n");
       for ( int k = n; k > i; k-- )
         strBuilder.Append(k.ToString());
     }
     return strBuilder.ToString();
   }
}

答案2:

using System;
using System.Linq;

public class Kata
{
   public string Pattern(int n)
   {
     if (n <= 0) return string.Empty;

     return string.Join("\n", Enumerable
       .Range(1, n)
       .Select(x =>
         string.Concat(Enumerable
           .Range(x, n - x + 1)
           .Reverse()
           .Select(y => y.ToString()))));
   }
}

答案3:

using System;
using System.Collections;

public class Kata
{
   public string Pattern(int n)
   {
        
     string pattern = "", current = "";
     
     for(int i = n; i > 0; i--){
        current += i;
        pattern =  i != n ? current + "\n" + pattern : pattern + current;
     }
     
     return pattern;
   }
}

答案4:

using System;
using System.Linq;

public class Kata {
  public string Pattern(int n) {
    return String.Join("\n", Enumerable.Range(0, Math.Max(0, n)).Select(i => String.Join("", Enumerable.Range(0, n - i).Select(j => n - j))));
  }
}

答案5:

using System;
using System.Linq;

public class Kata
{
   public string Pattern(int n)
   {
     if (n <= 0) return "";
     var nums = Enumerable.Range(1, n).Reverse().ToArray();
     return String.Join("\n", nums.Select(i => String.Concat(nums.Take(i))));
   }
}

答案6:

using System;

public class Kata
{
   public string Pattern(int n)
   {
     var str = "";
     var midStr = "";
     
     for(int now = n; now > 0; --now)
     {
       midStr += now.ToString();
       if(now != n)
         str = midStr + "\n" + str;
       else
         str = midStr;
     }
     
     return str;
   }
}

答案7:

using System;

public class Kata
{
   public string Pattern(int n)
   {
     string res = "";
     for(int i = n; i > 0; i--)
     {
       for(int j = 0; j < i; j++)
       {
         res += n-j;         
       }
       if(i != 1)
         res += "\n";
     }
     return res;
   }
}

答案8:

using System;
using System.Collections.Generic;
using System.Linq;

public class Kata
    {
        public string Pattern(int n)
        {
            var textList = new List<string>();
            var text = "";

            for (int i = n; i > 0; i--)
            {
                text += i.ToString();
                textList.Add(text);
            }

            return string.Join("\n", textList.OrderByDescending(item => item));
        }
    }

答案9:

using System.Collections.Generic;
using System.Linq;

   public static class Extensions
   {
      public static IEnumerable<int> To (this int from, int to)
      {
         if (from < to) {
            while (from <= to) {
               yield return from++;
            }
         } else {
            while (from >= to) {
               yield return from--;
            }
         }
      }

      public static string AsString<T> (this IEnumerable<T> items, string delimiter = "")
      {
         return string.Join (delimiter, items.Select (item => item.ToString ()));
      }

      public static IEnumerable<string> Prefixes (this string text)
      {
         for (int i = text.Length; i >= 1; i--)
            yield return text.Substring (0, i);
      }
   }
   
   public class Kata
   {
      public string Pattern (int n)
      {
         if (n <= 0)
            return string.Empty;
         
         return 1.To (n).Select (i => n.To (i).AsString ()).AsString ("\n");
      }
   }

答案10:

using System.Linq;

public class Kata
        {
            public string Pattern(int n)
                => n > 0 ? string.Join("\n",
                            Enumerable.Range(1, n)
                                .Select((i, i1) => string.Concat(Enumerable.Range(1 + i1, n - i1).Reverse())))
                        : "";
        }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值