黑马程序员技术交流社区

标题: 新手做的菱形题,请高手指点下思路. [打印本页]

作者: 徐瑞    时间: 2012-4-1 13:35
标题: 新手做的菱形题,请高手指点下思路.
     昨天看完循环视频,最后出了一个菱形题,本人菜鸟中的菜鸟,想了好长时间才想出下面的解决方法,不知我的思路如何,有没有欠妥之处,请不吝赐教.      
            //        *
            //      ***
            //    *****
            //  *******
            //    *****
            //      ***
            //       *
            //菱形题,分为俩个三角形;
            // i行变量,空格数为j,*数为k
            // *数空格数与i的关系
            // 空格数=最大行数-当前行数
            // *数=当前行数*2-1;
            //下半部分三角形
            // 空格数=最大行数-当前行数;当前行数为最大行数-1,然后--递减;
            // *数=当前行数*2-1
            //
            //输入偶数的还没有去考虑,暂且先只能输入整数且为奇数.
            Console.WriteLine("请输入一个奇数");
            int num = Convert.ToInt32(Console.ReadLine());
            int zuida = (num + 1) / 2;//算出最大行数
            int i, j, k;
            for (i = 1; i <= zuida; i++)//上半部分三角形
            {
                for (j = 1; j <= zuida - i; j++)//控制空格数
                {
                    Console.Write(" ");
                }
                for (k = 1; k <= 2 * i - 1; k++)//控制*数
                {
                    Console.Write("*");
                }
                Console.WriteLine("");//一行输出完毕,换行
            }
            for (i = zuida-1; i >=1; i--)//下半部分三角形
            {
                for (j = 1; j <= zuida - i; j++)//控制空格数
                {
                    Console.Write(" ");
                }
                for (k = 1; k <= 2 * i - 1; k++)//控制*数
                {
                    Console.Write("*");
                }
                Console.WriteLine("");
            }



                Console.ReadKey();
作者: 韩艳君    时间: 2012-4-1 14:00
我也是刚完的,你的思路是对的,刚刚学,这样挺好的
思路由复杂到简单,可以定义一个方法,直接调用
作者: 张恒    时间: 2012-4-1 14:11
思路清晰,一目了然啊




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