码迷,mamicode.com
首页 > Windows程序 > 详细

c#杨辉三角

时间:2016-01-09 18:34:29      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Exiperiment61
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //将光标设于输入文本框中
            txtline.Select();
        }

        private void txtline_KeyPress(object sender, KeyPressEventArgs e)
        {
            //非数字键放弃该输入
            //if(!char.IsDigit(e.KeyChar) && (int)e.KeyChar!=8)
            //{
            //  e.Handled=true;
            //    return;

            //}

            //非数字键,放弃该输入 (2)

            if( (int)e.KeyChar <48 ||  (int)e.KeyChar>58 )
            {
              if((int)e.KeyChar!=8)
                {
                   e.Handled=true ;
                    return ;
                }
            }
        }

        private void btnpain_Click(object sender, EventArgs e)
        {
            int i, j;
            int iinpuutline; //输入行数
            int itemp = 0;   //保存杨辉三角的临时变量
            int icurline;//当前行数的阶乘,从0开始
            int iposition;//行的第几个位置的阶乘

            string strtemp;  //用于临时编辑的输出字符

            //未输入检查

            if (txtline.Text.Trim() == "")
            {
                MessageBox.Show("请输入行数!", 
                                "杨辉三角提示信息", 
                             MessageBoxButtons.OK, 
                        MessageBoxIcon.Exclamation);
                txtline.Select();
                return;
            }


            //输入值超过规定值检查
            iinpuutline = int.Parse(txtline.Text);//数据类型转换

            iinpuutline = Convert.ToInt32(txtline.Text );//与上一句比较
            if (iinpuutline < 1 || iinpuutline > 8)
            { 
              MessageBox.Show("输入越界!","杨辉三角提示信息",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
                txtline .Select ();
                return;
            }
            int ibackline;
            //初始化临时存放字符串
   

            strtemp ="";
            for(i=0;i<iinpuutline ;i++)
            {
              for (j=iinpuutline ;j>=i;j--)
                  strtemp =strtemp +string .Format ("{0,2}",""); //输出前面的空格
                      for(j=0;j<=i;j++)
                      {
                        icurline =fun(i);//当前行数的阶乘,从0开始
                         ibackline=fun(i-j); //行数-列数位置所构成的阶乘
                          iposition =fun(j);//行的第几个位置的阶乘

                          itemp =icurline /(ibackline*iposition );//具体位置杨辉三角的值

                          strtemp =strtemp +string .Format("{0,4}",itemp);
                          if(i==j)
                              strtemp=strtemp +"\n";
                      }
            }

            txtresult .Text=strtemp;
        }
        int fun(int n)
        {

            if (n == 0 || n == 1)
                return 1;
            else
                return n * fun(n - 1);
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
        
        }
    }

          
}

 

c#杨辉三角

标签:

原文地址:http://www.cnblogs.com/-slient/p/5116783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!