实干、实践、积累、思考,创新。
如题 如何将n^m个可能枚举出来?通常枚举实现,直觉想到的就是用循环。
对于n和m很大的时候,写循环显然不可能。另外且当n和m都是运行时确定时,不管n和m是大还是小,都无法用循环了,因为用循环就意味着代码写死了。
最后想了一下,对于这种情况,可以用进制的方式进行实现。
n^m,相当于一个m维的数组,每个数组的取值可能有n个,那么m维数组,总的可能数就有n^m个。
举几个例子
2^m,可以表示为一个2进制位数
4^m,可以表示为一个4进制位数
具体的
2^2,一共有4种可能,具体情况如下:
1: 0 0
2: 1 0
3: 0 1
4: 1 1
3^2,一共有9种可能,具体情况如下:
1: 0 0
2: 1 0
3: 2 0
4: 0 1
5: 1 1
6: 2 1
7: 0 2
8: 1 2
9: 2 2
5^2,一共有25种可能,具体情况如下:
1: 0 0
2: 1 0
3: 2 0
4: 3 0
5: 4 0
6: 0 1
7: 1 1
8: 2 1
9: 3 1
10: 4 1
11: 0 2
12: 1 2
13: 2 2
14: 3 2
15: 4 2
16: 0 3
17: 1 3
18: 2 3
19: 3 3
20: 4 3
21: 0 4
22: 1 4
23: 2 4
24: 3 4
25: 4 4
根据这个思路,编程实现就十分简单了
- 微信公众号 ( Wechat Subscription)