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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ?﹪滾妳媽丶 中级黑马   /  2014-3-28 11:39  /  1221 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ?﹪滾妳媽丶 于 2014-3-28 20:47 编辑

    之前看教程,说到for循环和99乘法表那里,老师出了个道题,就是用for循环做出 *******
   有没有师兄教教我,有详细的逻辑方式和思维最好。                                                *****
                                                                                                                                     ***
                                                                                                                                       *

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

5 个回复

倒序浏览
之前论坛里好多输出菱形的问题,你这个问题可以参考下半三角的问题。
就是在for循环里面加if判断
如果横坐标与指定数值的绝对值在某个范围内则输出*,反之输出空格。
回复 使用道具 举报

我觉得这种题主要是要找到 每一行中的 每种字符 出现的位置和次数 与 它所在行数 之间的关系。
例如这个题中,用s表示空格吧,就相当于是:
*******
s*****
ss***
sss*

所以只要总结每种字符出现的规律就行了:(行号为 row(1,2,3....))

s出现的次数=row-1;
*出现的次数=7-2*(row-1);
  1.             for (int i = 1; i <= 5; i++)   //行号为 i
  2.             {
  3.                 for (int j = 1; j <= i - 1; j++)    //每行有i-1个空格
  4.                 {
  5.                     Console.Write(" ");
  6.                 }
  7.                 for (int j = 1; j <= 7 - 2 * (i - 1);j++ )  //每行有 7-2*(i-1) 个*
  8.                 {
  9.                     Console.Write("*");
  10.                 }
  11.                 Console.Write("\n");
  12.             }
复制代码



回复 使用道具 举报
本帖最后由 cancle 于 2014-3-28 14:05 编辑

是这样的么?

1.png (69.7 KB, 下载次数: 9)

1.png

2.png (27.41 KB, 下载次数: 8)

2.png
回复 使用道具 举报

是下面的啊,怎么做?
回复 使用道具 举报
本帖最后由 cancle 于 2014-3-28 16:37 编辑
?﹪滾妳媽丶 发表于 2014-3-28 15:17
是下面的啊,怎么做?
-----------------------------
代码如下,注意这道题跟上个图片不一样,这是个5行*号的倒三角,上面是3个的
   
  1.              for (int i = 1; i <= 5; i++)//共输入5行*号
  2.             {
  3.                 for (int j = 1; j < i; j++)//每行输入的空格数是当前行数-1
  4.                 {
  5.                     Console.Write(" ");
  6.                 }
  7.                 for (int k = 1; k <=11-2*i ; k++)//5行*号的话,第一行共有11个*号,依次减去2*i
  8.                 {
  9.                     Console.Write("*");
  10.                 }
  11.                 Console.WriteLine();//每行输入完成后换行
  12.             }
  13.             Console.ReadKey();
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马