学习中的感悟和总结

欢迎转载,本人名赖张殷,QQ:782966734,欢迎添加好友,共同探讨,作为初学者我会很荣幸的!



对于在一个确定的范围内(不确定范围)中获取一个或者几个数值的一些方法。


首先创建一个保存范围内数值的一个数组(list集合),

然后,定义一个变量(全局),用于访问该数组中指定内容的索引所对应的值,

这里可以使用条件判断语句或者循环语句(if ,for,while等等),

判断需要什么值用于获取自己想要的。


这样做的目的是增加通用性,可维护性


下面是我根据一些资料的示例:

  //根据max的索引,在pravelu数组中寻找对应的货币面值
        static int max = 10;
        //货币面值数组,以分为单位
        static float[] pravelu = new float[] { 0, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 20, 10 };
        //用于计算要使用多少张面值为多大的功能
       static  int[] num = new int[max];
        //参数是要找的零钱是多少
        static int  Exchange(float  n)
        {
            int i = 0;
            //寻找一张面值为多大的纸币
            //若n==69.6,则i+1为2,即是50面值的纸币
            for (i = 0; i < max; i++)
                if (n > pravelu[i+1]) break;
            //判断是否找到合适的纸币
            while (n > 0 && i < max)
            {
                //找钱
                if (n >= pravelu[i+1])
                {
                    //找了一张面值为X的纸币,并且得到了还剩下多少要找
                    n = n - pravelu[i+1 ];
                    //统计使用了多少张面值为X的纸币
                    num[i]++;
                }
                    //判断剩下的四舍五入,这里主要是计算分的面值,
                    //用处不大
                else if (n < 10 && n >= 5)
                {
                    num[max - 1]++;
                    break;
                }
                    //面值数组+1;
                else i++;
            }
            return 0;
        }


            

        //彩票组合的数字,这里是7种且不能重复
        static int max = 7;
        //彩票组合的数字范围1--NUM
        static int NUM = 29;
        //彩票的数组
        static int[] num = new int[NUM];
        //彩票大小的数组
        static int[] lottery = new int[max];
</pre><pre code_snippet_id="1579965" snippet_file_name="blog_20160216_5_3142499" name="code" class="csharp">      //n:数字范围(1--29),m:组合大小(7)
        static void Combine(int n, int m)
        {
            int i, j;
            //遍历组合大小,
            for (i = n; i >= m; i--)
            {
                //从大到小,把数字范围复制给组合大小
                lottery[m - 1] = num[i - 1];
                if (m > 1)
                    //多次递归
                    Combine(i - 1, m - 1);
                else
                {
                    //直到m=0,输出结果
                    for (j = max - 1; j >= 0; j--)
                        Console.Write(lottery[j]+" ");
                    Console.ReadKey();
                    Console.WriteLine();
                }
            }

static    void ConveTo(char[] s, int n, int b)
        {
         //进制需要的字符
            string  bit = "0123456789ABCDEF";
            int len=0;
            if (n == 0)
            {
                return;
            }
         // s:获取字符串数字的标志位
         //  n/b做除法操作,数制转换
         //  b 转换的数制
            ConveTo(s, n / b, b);
            //截取字符
         //根据余数来截取需要的数字或者是字母
            s[len]= bit[n % b];
         //输出
            Console.Write(s);
        }


最后,这是个人的一些学习编程的感悟,如果我有什么说的不对或者错误的地方,请您指出来,然后尽管来喷我,

一定豪无怨言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值