到目前为止,我已经想出了如何在这方面做了一切,但我需要知道如何使这个代码以这种方式运行。
Empty
关键是什么让它像那样跑回来?我假设从5开始并选择2个整数,但我很难跟踪它。以下是我之前要求的前两个解决方案。
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
*
//and now the reverse
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
答案 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));
这让我:
* * * * * * * * * * * * * * * * * * * * * * * * *