黑马程序员技术交流社区

标题: 经典中的经典,程序中的程序!妙妙妙! [打印本页]

作者: 蔡嘉    时间: 2012-9-23 14:04
标题: 经典中的经典,程序中的程序!妙妙妙!
C:\Documents and Settings\Administrator\桌面
自己动手敲出来,不是很容易的,大家试试吧!
要求:1.行数取3--21之间,对非法行数抛出"非法行数";
        2. 在控制台上打印出这个行数的倒三角形;


作者: 蔡嘉    时间: 2012-9-23 14:10
有图
作者: 许庭洲    时间: 2012-9-24 17:03
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 倒等腰三角形
{
      calss Program
      {
        static void Main(string[] args)
        {
            int intNumber;

            Console.Write("请输入显示的行数:");
            string number = Console.ReadLine();

            bool IsNum = int.TryParse(number, out intNumber);

            if (!IsNum)
            {
                Console.Write("请不要输入非法数字!");
            }
            else if (intNumber < 3 || intNumber > 21)
            {
                Console.Write("输入的数据最小为3,最大为21!");
            }
            else
            {
                for (int i = intNumber; i > 0; i--)
                {
                    //循环空格
                    for (int j = 0; j < intNumber - i; j++)
                    {
                        Console.Write(" ");
                    }

                    //循环图形
                    for (int k = 2 * i - 1; k > 0; k--)
                    {
                        Console.Write("*");
                    }

                    Console.Write("\n");
                }
            }
            Console.ReadKey();
        }
    }
}
作者: 蔡嘉    时间: 2012-9-24 21:02
感谢高人回帖,昨天是倒立三角形,今天来个直立三角形,请看新帖!
作者: 秦敖    时间: 2012-10-5 23:01
折腾了一会,最终还是实现了!

using System;

namespace 倒三角形
{
        class Program
        {
                public static void Main(string[] args)
                {
                        int Row;//定义变量用于存储行数
                        Console.Write("请输入行数(3-21):");
                        //对用户输入进行控制,不是数字 或者 大于21 或者 小于3都要求重新输入。
                        while(!int.TryParse(Console.ReadLine(),out Row)||Row>21||Row<3)
                        {
                                Console.Write("输入无效,从新输入行数(3-21):");
                        }
                        //对于整个图形的输入,只需要分析一下每一行输出的空格数和"*"数的规律就行了
                        for(int i=Row;i>=1;i--)//外循环控制行数,我把它理解为规律中数列的项数
                        {
                                for(int k=1;k<=Row-i;k++)
                                {
                                        Console.Write(" ");//空格规律:空格数+i=行数,所以空格数=Row-i
                                }
                                for(int j=1;j<=2*i-1;j++)//*的规律为等差为2的等差数列,倒序所以外循环是i=Row;i>=1
                                {
                                        Console.Write("*");
                                }
                                Console.WriteLine();
                        }
                        Console.ReadKey(true);
                }
        }
}
作者: 秦敖    时间: 2012-10-5 23:12
直立三角形只需修改外循环,把 for(int i=Row;i>=1;i--)改成 for(int i=1;i<=Row;i++)代码如下:

using System;
namespace 直立三角形
{
        class Program
        {
                public static void Main(string[] args)
                {
                        int Row;//定义变量用于存储行数
                        Console.Write("请输入行数(3-21):");
                        //对用户输入进行控制,不是数字 或者 大于21 或者 小于3都要求从新输入。
                        while(!int.TryParse(Console.ReadLine(),out Row)||Row>21||Row<3)
                        {
                                Console.Write("输入无效,从新输入行数(3-21):");
                        }
                        //对于整个图形的输入,只需要分析一下每一行输出的空格数和"*"数的规律就行了
                        for(int i=1;i<=Row;i++)//外循环控制行数,我把它理解为规律中数列的项数
                        {
                                for(int k=1;k<=Row-i;k++)
                                {
                                        Console.Write(" ");//空格规律:空格数+i=行数,所以空格数=Row-i
                                }
                                for(int j=1;j<=2*i-1;j++)//*的规律为等差为2的等差数列.
                                {
                                        Console.Write("*");
                                }
                                Console.WriteLine();
                        }
                        Console.ReadKey(true);
                }
        }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2