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

完成该模式#8 - 数字金字塔【难度:2级】:

答案1:

using System.Linq;

public class NumberPyramid
{
   
  static string Pattern(int i, int n)
  {
   
    var range = Enumerable.Range(1, i).Select(x => x % 10);
    var num = string.Join("", range.Concat(range.Reverse().Skip(1)));
    var pad = new string(' ', n - i);
    return $"{pad}{num}{pad}";
  }
  
  public static string Pattern(int n)
  {
   
    if (n <= 0)
      return "";
      
    return string.Join("\n", Enumerable.Range(1, n).Select(i => Pattern(i, n)));
  }
}

答案2:

public class NumberPyramid
{
   
  public static string Pattern(int n)
        {
   
            if (n < 1) return "";
            else
            {
   
                int i, j; string ss = "";
                for (i = 1; i <= n; i++)
                {
   
                    for (j = 1; j <= n - i; j++) ss = ss + " ";
                    for (j = 1; j <= i; j++) ss += j%10;

                    for (j = i - 1; j > 0; j--) ss += j%10;
                    for (j = 1; j <= n - i; j++) ss = ss + " ";
                    if(i<n)ss += "\n";
                }
                return ss;
            }
        }
}

答案3:

using System;
using System.Text;

public class NumberPyramid
{
   
  public static string Pattern(int n) => n > 0 ? Create(n) : String.Empty;
  
  private static string Create(int n)
  {
   
    var lineLength = n + n - 1;
    var sb = new StringBuilder(n * (lineLength + 1));
    var cleanLine = new char[lineLength];
    for (var i = 0; i < lineLength; ++i) cleanLine[i] = ' ';
    
    var middle = n-1;
    for (var i = 1; i 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值