16 个解决方案
#1
Console.WriteLine(" *\n ***\n*****");
#2
string str = @"
*
* *
* * *";
richTextBox1.Text = str;
*
* *
* * *";
richTextBox1.Text = str;
#3
靠,我要FOR循环输出*号,不要字符、字符串那些
#4
for (int i = 0; i < 5; i++)
{
string temp = "";
for (int j = 0; j <= i; j++)
{
temp += "*";
}
Console.WriteLine(temp);
}
Console.Read();
这算不算3角型- -0
#5
我摆个图形出来吧
*
***
*****
*******
*********
*
***
*****
*******
*********
#6
1,3,5,7,9,可以控制输多少行的
#7
慢慢等呗。。不好好上课的下场。。
#8
应该骂。
先打屁股,再给写一个吧。
using System;不过学生恐怕只会拼凑而不会分析,因此恐怕看这种东西需要人指点。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
我的杨辉三角(5, 0);
Console.ReadKey();
}
private static void 我的杨辉三角(int n, int 前边有几个空格)
{
if (n > 1)
我的杨辉三角(n - 1, 前边有几个空格 + 1);
Console.Write(new string(' ', 前边有几个空格));
Console.WriteLine(new string('*', n * 2 - 1));
}
}
}
#9
你可以试试看,修改一行
然后所谓“分析的思路”就是:打印n行三角,需要先打印n-1行,然后再打印最后一行即可。
学软件要学会思路,真正的算法都是精当的 科学归纳算法,不要学一堆低级的拼凑结果的所谓“算法”。
我的杨辉三角(10, 5);看看结果,就能明白“我的杨辉三角”的目的就是:打印n层级的三角,并且要向右移动一定位置。
然后所谓“分析的思路”就是:打印n行三角,需要先打印n-1行,然后再打印最后一行即可。
学软件要学会思路,真正的算法都是精当的 科学归纳算法,不要学一堆低级的拼凑结果的所谓“算法”。
#10
如果有人喜欢迭代,我写一个使用微软迭代器的代码(使用迭代器,那么你就无需自己手工去写什么迭代的“算法”):
using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
foreach (var line in 我的杨辉三角(10, 15))
Console.WriteLine(line);
Console.ReadKey();
}
private static IEnumerable<string> 我的杨辉三角(int n, int 前边有几个空格)
{
if (n > 1)
{
foreach (var line in 我的杨辉三角(n - 1, 前边有几个空格 + 1))
yield return line;
}
yield return new string(' ', 前边有几个空格) + new string('*', n * 2 - 1);
}
}
}
#11
一直不了解迭代器。。设断点也跳不进去。。不知道怎么下手学习。。
public class Node
{
public Dictionary<char, Node> Dict { get; set; }
public Node() { Dict = new Dictionary<char, Node>(); }
public IEnumerable<string> Get()
{
foreach (var item in Dict.OrderBy(x => x.Key))
{
if (item.Key == '\0') yield return "";
foreach (var item1 in item.Value.Get())
{
yield return item.Key.ToString().ToLower() + item1;
}
}
}
}
List<string> list;
public void digui(Dictionary<char, Node> dict)
{
foreach (var v in dict.OrderBy(x => x.Key))
{
if (v.Key == '\0')
{
list.Add(temp);
temp = "";
}
else
{
temp = temp + v.Key.ToString();
digui(v.Value.Dict);
}
}
}
上面那个是别人写的,下面那个是自己重新写的。。感觉实现的东西都一样。。但不知道迭代器到底是按怎样一个顺序(或原理)执行的。。MSDN解释看不太懂(我比较笨)。。设断点也跑不进去
#12
来做个记号
#13
大神给你贴代码,赶紧mark吧
#14
void main()
{
int i,k,j;
for(i=1;i<=5;i++)
{
for(k=1;k<=5-i;k++)
printf(" ");
for(j=1;j<=i*2-1;j++)
printf("*");
printf("\n");
}
}
c写过
#15
这是课堂作业?
#16
这个刚进学校的时候老师出的作业。
#1
Console.WriteLine(" *\n ***\n*****");
#2
string str = @"
*
* *
* * *";
richTextBox1.Text = str;
*
* *
* * *";
richTextBox1.Text = str;
#3
靠,我要FOR循环输出*号,不要字符、字符串那些
#4
for (int i = 0; i < 5; i++)
{
string temp = "";
for (int j = 0; j <= i; j++)
{
temp += "*";
}
Console.WriteLine(temp);
}
Console.Read();
这算不算3角型- -0
#5
我摆个图形出来吧
*
***
*****
*******
*********
*
***
*****
*******
*********
#6
1,3,5,7,9,可以控制输多少行的
#7
慢慢等呗。。不好好上课的下场。。
#8
应该骂。
先打屁股,再给写一个吧。
using System;不过学生恐怕只会拼凑而不会分析,因此恐怕看这种东西需要人指点。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
我的杨辉三角(5, 0);
Console.ReadKey();
}
private static void 我的杨辉三角(int n, int 前边有几个空格)
{
if (n > 1)
我的杨辉三角(n - 1, 前边有几个空格 + 1);
Console.Write(new string(' ', 前边有几个空格));
Console.WriteLine(new string('*', n * 2 - 1));
}
}
}
#9
你可以试试看,修改一行
然后所谓“分析的思路”就是:打印n行三角,需要先打印n-1行,然后再打印最后一行即可。
学软件要学会思路,真正的算法都是精当的 科学归纳算法,不要学一堆低级的拼凑结果的所谓“算法”。
我的杨辉三角(10, 5);看看结果,就能明白“我的杨辉三角”的目的就是:打印n层级的三角,并且要向右移动一定位置。
然后所谓“分析的思路”就是:打印n行三角,需要先打印n-1行,然后再打印最后一行即可。
学软件要学会思路,真正的算法都是精当的 科学归纳算法,不要学一堆低级的拼凑结果的所谓“算法”。
#10
如果有人喜欢迭代,我写一个使用微软迭代器的代码(使用迭代器,那么你就无需自己手工去写什么迭代的“算法”):
using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
foreach (var line in 我的杨辉三角(10, 15))
Console.WriteLine(line);
Console.ReadKey();
}
private static IEnumerable<string> 我的杨辉三角(int n, int 前边有几个空格)
{
if (n > 1)
{
foreach (var line in 我的杨辉三角(n - 1, 前边有几个空格 + 1))
yield return line;
}
yield return new string(' ', 前边有几个空格) + new string('*', n * 2 - 1);
}
}
}
#11
一直不了解迭代器。。设断点也跳不进去。。不知道怎么下手学习。。
public class Node
{
public Dictionary<char, Node> Dict { get; set; }
public Node() { Dict = new Dictionary<char, Node>(); }
public IEnumerable<string> Get()
{
foreach (var item in Dict.OrderBy(x => x.Key))
{
if (item.Key == '\0') yield return "";
foreach (var item1 in item.Value.Get())
{
yield return item.Key.ToString().ToLower() + item1;
}
}
}
}
List<string> list;
public void digui(Dictionary<char, Node> dict)
{
foreach (var v in dict.OrderBy(x => x.Key))
{
if (v.Key == '\0')
{
list.Add(temp);
temp = "";
}
else
{
temp = temp + v.Key.ToString();
digui(v.Value.Dict);
}
}
}
上面那个是别人写的,下面那个是自己重新写的。。感觉实现的东西都一样。。但不知道迭代器到底是按怎样一个顺序(或原理)执行的。。MSDN解释看不太懂(我比较笨)。。设断点也跑不进去
#12
来做个记号
#13
大神给你贴代码,赶紧mark吧
#14
void main()
{
int i,k,j;
for(i=1;i<=5;i++)
{
for(k=1;k<=5-i;k++)
printf(" ");
for(j=1;j<=i*2-1;j++)
printf("*");
printf("\n");
}
}
c写过
#15
这是课堂作业?
#16
这个刚进学校的时候老师出的作业。