C#总和排除

时间:2016-04-13 02:18:41

标签: c#

到目前为止,我已经想出了如何在这方面做了一切,但我需要知道如何使这个代码以这种方式运行。

Empty

关键是什么让它像那样跑回来?我假设从5开始并选择2个整数,但我很难跟踪它。以下是我之前要求的前两个解决方案。

*                   *
 *                 *
  *               *
   *             *
    *           *
     *         *
      *       *
       *     *
        *   *
         * *
          *
//and now the reverse


          *           
         * *
        *   *
       *     *
      *       *
     *         *
    *           *
   *             *
  *               *
 *                 *
*                   *

3 个答案:

答案 0 :(得分:1)

C#中,您可以使用PadLeft通过在左侧填充来对齐此实例中的字符。

static void GetData()
{
    int count = 0;
    int sum = 0;
    int countmax = 15;
    bool IsOdd = countmax%2 ==1;

    // first half
    for(int i=1,j=0;i<=countmax/2;i++)
    {
        Console.WriteLine("{0}{1}","*".PadLeft(i), "*".PadLeft(countmax-i-(j++)));
    }       

    if(IsOdd) Console.WriteLine("*".PadLeft(countmax/2 +1)); // for odd count

    // Second half
    for(int i=IsOdd? countmax/2+1: countmax/2, j=0 ;i<countmax;i++)
    {
        Console.WriteLine("{0}{1}","*".PadLeft(i-(IsOdd?++j : j++)), "*".PadLeft(IsOdd?++j:j++));
    }
}

<强>输出:

*     *
 *   *
  * *
   *
  * *
 *   *
*     *

工作Demo

答案 1 :(得分:0)

您也可以通过简单的嵌套循环来实现这一点 -

String s1= n1.getText().toString();
String output = s1.replaceFirst("\","");

答案 2 :(得分:0)

你可以这样做:

var count = 7; // number of starts from centre star along one arm of the X

var range = Enumerable.Range(1, count);

var lines =
    range
        .Concat(range.Reverse().Skip(1))
        .Select(n =>
            "*".PadLeft(n, ' ')
            + (n == count ? "" : "*".PadLeft(2 * (count - n), ' ')));

Console.WriteLine(String.Join(Environment.NewLine, lines));

这让我:

*           *
 *         *
  *       *
   *     *
    *   *
     * *
      *
     * *
    *   *
   *     *
  *       *
 *         *
*           *