1.最简单的办法就是用递归来实现。以生成由4,7,9三个数组成,且不超过MAX_NUMBER、不小于MIN_NUMBER的数的个数:
![]()
}
number()返回值是符合条件的数的个数。
用此种方法比较通用,解SRM_403_DIV1_250最为简单。
2.因题中仅要求2个数,因此可以用2进制位构造出所有由这两个数组成的数。
1![]()
}
其中,k是用来控制每次生成的数的长度的,最多不超过9。
3. 划分成多个区间
如果a和b长度相同,则仅需要双重循环i和j即可。
如果不相同,则只需要计算区间(a, maxnumber of length(a)) + (minnumber of length(b), b) + 长度处于[length(a)+1,length(b)-1]之间的数的个数。后一部分的算法为count = 1 << length; length属于[length(a)+1,length(b)-1]
![]()
*/
相关文章:
-
2022-12-23
-
2021-10-13
-
2022-12-23
-
2021-08-16
-
2022-01-12
-
2022-03-07
-
2022-01-08
-
2021-11-27
猜你喜欢
-
2022-01-29
-
2022-12-23
-
2022-12-23
-
2022-12-23
-
2021-10-17
-
2021-07-22
-
2022-12-23
相关资源
-
下载
2021-11-03
-
下载
2021-11-03
-
下载
2022-12-01
-
下载
2022-12-17
-
下载
2023-03-22