A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐瑞 中级黑马   /  2012-4-1 13:35  /  1943 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

     昨天看完循环视频,最后出了一个菱形题,本人菜鸟中的菜鸟,想了好长时间才想出下面的解决方法,不知我的思路如何,有没有欠妥之处,请不吝赐教.      
            //        *
            //      ***
            //    *****
            //  *******
            //    *****
            //      ***
            //       *
            //菱形题,分为俩个三角形;
            // 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();

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
我也是刚完的,你的思路是对的,刚刚学,这样挺好的
思路由复杂到简单,可以定义一个方法,直接调用
回复 使用道具 举报
思路清晰,一目了然啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马