• c#只用一个for输出三角形


    近日到某公司面试,其中有道面试题是这样的:

    要求只使用一个for循环输出下面图形:

    ----

    如果可以使用2个for(即嵌套循环的话),那这题就很简单了。

    但只能用一个for,这可把我想得,想到面试都结束了没想出来。

    TMD,肯定是脑子短路了!!!

      郁闷的是,等到第2天重新一想,居然很快就想出来了,使用String对象,可以达成输出重复字符的效果!!!

     代码贴在下面:

    代码
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace ConsoleApplication1
    {
        
    class Program
        {
            
    static void Main(string[] args)
            {
                Render(
    19);

                Console.Read();
            }

            
    static void Render(int rowNum)
            {
                
    if (rowNum <= 0 || !System.Text.RegularExpressions.Regex.IsMatch(rowNum.ToString(),@"^\d+$"))
                    
    return;
                
    int tmpRow = 0;
                
    for (int i = 1; i <= rowNum; i++)
                {
                    
    //对称输出
                    tmpRow = i <= rowNum / 2 ? i : rowNum - i + 1;               
                    Console.WriteLine(
    "{0}"new string('*'2 * tmpRow - 1));
                }
            }
        }
    }

     --下面是php版本

     1 <?php
     2 //phpinfo();
     3   function Dis($num)
     4   {
     5       if($num<=0)
     6        return;
     7       $tmpRow=0;
     8       for($i=1;$i<=$num;$i++)
     9       {
    10           $tmpRow=$i<=$num/2 ? $i:$num-$i+1;
    11           echo str_repeat('*',2*$tmpRow-1).'<br />';
    12       }
    13   }
    14   
    15   Dis(19);
    16 ?>

    很简单的东西,把我给卡住了。

    类似的东西还有:如何在for里面实现不间断的循环?《在for里面改变for的条件就是了》

    ----------------------------------------------------------------------

    间隙性的知足,以儆效尤!!!

    <h3>
       心静似高山流水不动,心清若巫峰雾气不沾。
    </h3>
  • 相关阅读:
    ORACLE CLIENT客户端安装步骤详解
    mkswap 把一个分区格式化成为swap交换区
    编译安装lnmp
    使用源代码安装lnmp
    查看nginx编译安装
    linux lnmp编译安装
    nginx编译安装
    lnmp脚本
    搭建LAMP测试环境
    绝路上的桥
  • 原文地址:https://www.cnblogs.com/McJeremy/p/1700442.html
Copyright © 2020-2023  润新知