欢迎转载,本人名赖张殷,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);
}
最后,这是个人的一些学习编程的感悟,如果我有什么说的不对或者错误的地方,请您指出来,然后尽管来喷我,
一定豪无怨言。