当前位置:编程学习 > C#/ASP.NET >>

神啊,使用递归帮我一下啊

问你们一个问题了
输入一个数字比如325使用递归函数,把300,20,5作为父节点,在300的父节点下添加200,100为子节点,20父节点下添加10子节点,5父节点下添加4,3,2,1使用递归以此类推 --------------------编程问答--------------------

//写的不好,高手优化代码的快来。
        private void button1_Click(object sender, EventArgs e)
        {
            getTreeStuts(int.Parse(textBox1.Text));//得到数组就是,现在支持最大4位,要扩展可以修改kkk函数。
        }

        private ArrayList getTreeStuts(int para)
        {
            ArrayList al = new ArrayList();
            int kk = 1;
            kk = kkk(para);
            for (int i = 0; i < para.ToString().Length; i++)
            {
                al.Add(getF(int.Parse(para.ToString().Substring(i, 1)) * kk));

               kk = kk / 10;
            }
            
            return al;
        }

        private ArrayList getF(int para)
        {
            ArrayList al = new ArrayList();
            int kk = 1;
            kk = kkk(para);
            int i=0;
            while (i<para)
            {
                al.Add(para);
                para = para - kk;

            }
            return al;
        }

        private int kkk(int para)
        {
            int kk = 1;
            switch (para.ToString().Length)
            {
                case 4:
                    kk = 1000;
                    break;
                case 3:
                    kk = 100;
                    break;
                case 2:
                    kk = 10;
                    break;
                default:
                    kk = 1;
                    break;
            }
            return kk;
        }

--------------------编程问答-------------------- 递归在程序中很常用,楼主要多做练习啊
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,