C#练习题答案: 图片#1 - 重建巴别塔【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战

图片#1 - 重建巴别塔【难度:1级】:

答案1:

using System.Linq;

public static class Kata
{
  public static string Babel(int n)
    => string.Join("\n",Enumerable.Range(0,n*3).Select(i=> new string(' ',n-1-(int)(i/3)) + new string('o',2*(int)(i/3)+1)));
}

答案2:

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

public static class Kata
{
  public static string Babel(int height)
  {
    List<string> lines = new List<string>();
    for(var i=0;i<height;i++)
    {
      for(var j=0;j<3;j++)
      {
        StringBuilder sb = new StringBuilder();
        for(var k=0;k<height-i -1;k++)
        {
          sb.Append(" ");
        }
        for(var k=0;k< i*2 +1;k++)
        {
          sb.Append("o");
        }
        lines.Add(sb.ToString());
      }
    }
    return string.Join("\n", lines);
  }
}

答案3:

using System.Collections.Generic;

public static class Kata
{
  private const int LayersCount = 3;
  
  public static string Babel(int height)
  {
    var tower = new List<string>(height * LayersCount);
    
    for (int i = 0; i < height; i++)
    {
      for (int j = 0; j < LayersCount; j++)
      {
        tower.Add($"{new string(' ', height - i - 1)}{new string('o', i)}o{new string('o', i)}");
      }
    }
    
    return string.Join("\n", tower);
  }
}

答案4:

using System;
using System.Collections.Generic;

public static class Kata
{
    public static string Babel(int height)
    {
        if(height == 0)
        {
            return "";
        }
        else
        {
            List<string> result = new List<string>(height * 3);
            
            for(int x = 0; x < height; x++)
            {
                for(int y = 0; y < 3; y++)
                {
                    result.Add(new string(' ', height - x - 1) + new string('o', x * 2 + 1));
                }
            }
            
            return String.Join("\n", result);
        }
    }
}

答案5:

using System.Collections.Generic;

public static class Kata {
    public static string Babel( int height ) {
        var floors = new List<string>( height*3 );
        for ( int i = 0; i < height; i++ ) {
            var floor = new string( ' ', height - i - 1 ) + new string( 'o', 2*i + 1 );
            floors.Add( floor );
            floors.Add( floor );
            floors.Add( floor );
        }
        return string.Join( "\n", floors );
    }
}

答案6:

using System.Collections.Generic;

public static class Kata
{
    public static string Babel(int height)
    {
        if (height == 0) return "";
        var l = new List<string>();
        for (int i = 0; i < height; i++)
            for (int y = 0; y < 3; y++)
                l.Add(new string(' ', height - i - 1) + new string('o', i * 2 + 1));
        return string.Join("\n", l);
    }
}

答案7:

using System.Text;
using System;

public static class Kata
{
  public static string Babel(int height)
  {
    StringBuilder tower = new StringBuilder(String.Empty);
    
    for(int i = 1; i <= height; i++)
    {
      int spaces = height - i;
      int oes = (i * 2) - 1;

      tower.Append(' ', spaces).Append('o', oes).Append("\n");
      tower.Append(' ', spaces).Append('o', oes).Append("\n");
      tower.Append(' ', spaces).Append('o', oes);
      if(i != height) tower.Append("\n");

    }
    return tower.ToString();
  }
}

答案8:

using System.Linq;

public static class Kata
{
  public static string Babel(int height)
  {
    if (height == 0) { return ""; }
    int width = 2 * height - 1;
    return string.Join("\n", Enumerable.Range(0, height)
                                       .SelectMany(i => Enumerable.Repeat(new string('o', 2*i + 1).PadLeft(width/2 + i + 1, ' '), 3)));
  }
}

答案9:

using System;
using System.Text;
  public static class Kata
    {
        public static string Babel(int height)
        {
            StringBuilder a = new StringBuilder();
            int k;
            for (int i = 1; i <= height; i++)
            {
                k = i * 2 - 1;
                for(int j = 0; j < 3; j++)
                {
                    a.Append(new string(' ', height - i) + new string('o', k) + '\n');
                }
            }
            return Convert.ToString(a).TrimEnd('\n');
        }
    }

答案10:

using System;
using System.Text;
using System.Collections.Generic;

public static class Kata
{
  public static string Babel(int height)
  {
    var str = new List<string>();
    
    for (int i = 0; i < height; i++) {
      for (int j = 0; j < 3; j++) {
        var sb = new StringBuilder();
        for (int k = 0; k < height - i - 1; k++) {
          sb.Append(" ");
        }
        for (int k = 0; k < i * 2 + 1; k++) {
          sb.Append("o");
        }
        str.Add(sb.ToString());
      }
    }
    
    return string.Join("\n", str);
  }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在只考虑功能的情况下,可以设计以下测试用例: 1. 测试立减卷功能: - 输入合法的立减卷金额,验证商品价格能否正确减去该金额。 - 输入无效的立减卷金额(例如负数),验证系统是否能正确处理并给出错误提示。 - 输入合法的立减卷金额,但商品价格低于该金额,验证系统是否能正确处理并给出错误提示。 2. 测试满减卷功能: - 输入合法的满减条件和金额,验证当商品价格满足条件时,能否正确减去对应金额。 - 输入无效的满减条件和金额(例如负数),验证系统是否能正确处理并给出错误提示。 - 输入合法的满减条件和金额,但商品价格低于条件时,验证系统是否能正确处理并给出错误提示。 3. 测试多张卷叠加使用功能: - 测试立减卷和满减卷金额均合法且满足条件时,能否正确叠加使用并减去对应金额。 - 测试立减卷和满减卷金额均合法但不满足条件时,验证系统是否能正确处理并给出错误提示。 4. 测试边界情况: - 输入最小合法的立减卷金额,验证系统是否能正确处理并减去该金额。 - 输入最小合法的满减条件和金额,验证系统是否能正确处理并减去对应金额。 - 输入最大合法的立减卷金额,验证系统是否能正确处理并减去该金额。 - 输入最大合法的满减条件和金额,验证系统是否能正确处理并减去对应金额。 这些测试用例可以覆盖常见的功能场景和边界情况,以确保立减卷和满减卷功能的正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值