第七十二课 利用循环嵌套输出各种各样的图形
1. 输入正整数n,输出n行,每行n个*的平行四边形。
样例输入5
样例输出
*****
*****
*****
*****
*****
int n= Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < n; i++)
{
for (int j = 0; j < i; j++)
{
Console.Write(" ");
}
for (int t = 0; t < n; t++)
{
Console.Write("*");
}
Console.WriteLine();
}
2. 输入一个正整数n,输出n层的右三角形。
样例输入4
样例输出
*
**
***
****
int n= Convert.ToInt32(Console.ReadLine());
for (int i = n; i > 0; i--)
{
for (int t = 1; t < i; t++)
{
Console.Write(" ");
}
for (int j = 0; j < n - (i - 1); j++)
{
Console.Write("*");
}
Console.WriteLine();
}
改成老师的方法:
int n = Convert.ToInt32(Console.ReadLine());
for(int i = 1; i <= n; i++)
{
for(int j = 0; j < n - i; j++)
{
Console.Write(" ");
}
for(int j = 0; j < i; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
老师的写法怎么看都想是代数,但这样的方法简洁直观。
int n= Convert.ToInt32(Console.ReadLine());
for(int i = 1; i <= n; i++)
{
for(int j = 0; j < n - i; j++)
{
Console.Write(" ");
}
for(int j = 0; j < i; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
我给大家按照代数的方法说一下哈。
设行数与每行字符为n,空格为j,星号为i。
每一样的空格为:n-i(i是遍历的,所以随着 i 的遍历,n-i的结果越来越少,所以每行空格越来越少)。
那么i代表*好,随着i++的遍历越来越多。
所以他们结合在一起就实现了以上星星的排列。
3. 输入一个正整数n,输出n层的等腰三角形。
样例输入4
样例输出
*
***
*****
*******
自己的写法:
int n= Convert.ToInt32(Console.ReadLine());
for (int i = n; i > 0; i--)
{
for (int t = 1; t < i; t++)
{
Console.Write(" ");
}
for (int j = 0; j < n - (i - 1); j++)
{
Console.Write("*");
}
for (int m = 2; m < n - (i - 2); m++)
{
Console.Write("*");
}
Console.WriteLine();
}
我的方法是,将上一题的星星排列方法基础上,再写一部分程序,将少的那部分星星加上。
(明天再来看老师的课,先忙一会去)
老师的方法:
int n= Convert.ToInt32(Console.ReadLine());
for(int i = 1; i <= n; i++)
{
for(int j = 0; j < n - i; j++)
{
Console.Write(" ");
}
for(int j = 0; j < 2 * i - 1; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
以后能一并写出来的就一并写出来,不分开写,看来是我将简单的问题复杂化了。
4. 输入一个正整数n,输出n层的菱形。
样例输入4
样例输出
*
***
*****
*******
*****
***
*
自己写的:
int n= Convert.ToInt32(Console.ReadLine());
for(int i = 0; i<= n; i++)
{
for(int j = 0; j < n - i; j++)
{
Console.Write(" ");
}
for(int j =0 ; j < 2*i-1; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
for(int i = n -1; i>0; i--)
{
for(int j = i; j < n ; j++)
{
Console.Write(" ");
}
for(int j = 0; j < i * 2 - 1; j++)
{
Console.Write("*");
}
Console.WriteLine();
}