首页 新闻 会员 周边

打印三角形状的数字 怎么实现啊……

2
[待解决问题]

编程一个函数实现功能,给出n,打印1-n,例如

1

22   33 

444  555  666 

7777 8888 9999 10101010

自由而无用的主页 自由而无用 | 初学一级 | 园豆:195
提问于:2011-03-30 10:57
< >
分享
所有回答(1)
0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _12233444555
{
class Program
{
static void Main(string[] args)
{
try
{
Program pro
= new Program();
Console.Write(
"请输入N的值:");
int n = Convert.ToInt16(Console.ReadLine());
pro.num_triangle(n);
}
catch
{
Console.WriteLine(
"您输入的不是自然数~");
Console.WriteLine(
"=============================== End =============================\r\n");
}
Console.Read();
}

void num_triangle(int n)
{
int a = 1;
for (int i = 1; i <= n; i++) //控制行数
{
for (int j = 0; j < i; j++) //控制每行输出数字
{
if (i == 1)
{
Console.Write(a);
}
else
{
++a;
for (int h = 0; h < i; h++) //控制每个数字输出次数
{
Console.Write(a);
}
Console.Write(
"\t");
}
}
Console.WriteLine(
"\r");
}
}
}
}
leroylei | 园豆:228 (菜鸟二级) | 2011-03-30 22:31
非常感谢 !!!
支持(0) 反对(0) 自由而无用 | 园豆:195 (初学一级) | 2011-03-30 22:33
估计还有更精简的方法吧,不吝赐教~
支持(0) 反对(0) leroylei | 园豆:228 (菜鸟二级) | 2011-03-30 22:34

@自由而无用: 今天写一个算法,怎么也写不出来,于是回来看到这个算法,想着从简单的再写一遍,找找感觉,然后就又按照你的这个题目写了一下,写完跟以前的比对了一下,发现没什么,两个算法同时一运行,问题出来了,一年前的这个算法是有问题的,凑巧打印出10个数是正常的,符合你的题目,但是超过10个就错了,然后看了下我今天写的程序,发现是对的。无意间的问题,无意间的发掘,看了下日期,好巧合,正好一年了。贴上新的算法:

        public static void triangle(int n)
        {
            int a = 1;
            for (int i = 1; i <= n; i++)
            {
                for (int j = 0; j < i; j++)
                {
                    for (int k = 1; k <= i; k++)
                    {
                        Console.Write(a);

                    }
                    Console.Write("\t");
                    a++;
                }
                Console.Write("\r\n");
                if (a > n)
                {
                    return;
                }
            }
        }

支持(0) 反对(0) leroylei | 园豆:228 (菜鸟二级) | 2012-03-31 22:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册