给大家出个题目玩玩
要求: 定义一个函数,要求能够输出任意进制(1-10,16进制吧)的第N个数。格式:结果 = func(进制,N)
例如:
func(2,100) 返回 1100011
func(8,100) 返回 143
func(16,100) 返回 63
大家各自搞个回复可见,以免影响其他人的思路。
2-10吧 1肿麽玩 :face (24):
模N取余 afan 发表于 2021-4-6 18:09
2-10吧 1肿麽玩
模N取余
嗯,1进制属于特例了。2-10,16进制吧 **** Hidden Message ***** afan 发表于 2021-4-6 18:43
**** 本内容被作者隐藏 ****
**** Hidden Message *****
a版表驱动大法NB啊。我只想到了用递归写法,而且这写法还无法解决0的占位问题。
好难,我还是先看看进制转换吧{:1_243:} 本帖最后由 zghwelcome 于 2021-4-6 21:42 编辑
不会搞
**** Hidden Message *****
haijie1223 发表于 2021-4-6 19:23
**** 本内容被作者隐藏 ****
递归一直不怎么用,有效率问题和层次限制…
当然递归也有方便之处,比如可以简化循环结构
原来你们都躲在这里 虽然不会,但带着仰慕的心情学习下 小兵 发表于 2021-4-7 11:16
原来你们都躲在这里
这是深度的小兵? MsgBox(0, 0, _BaseCalc(2, 100))
Func _BaseCalc($b, $n)
$sRt = ''
;~ $n -= 1 按要求应该要加这么一句
While 1
If $n < $b Then Return _nCalc($n) & $sRt
$sRt = _nCalc(Mod($n, $b)) & $sRt
$n = Int($n/$b)
WEnd
EndFunc
Func _nCalc($n)
Return $n>9 ? Chr($n+55) : $n
EndFunc
static/image/hrline/line2.png
func(2,100) 返回 1100011
func(8,100) 返回 143
func(16,100) 返回 63
这是认真的吗......
太难了,楼上的好像答案跟楼主的不一样 驱动大法NB 看看版主的回答
页:
[1]
2