haijie1223 发表于 2021-4-6 17:13:34

给大家出个题目玩玩

要求: 定义一个函数,要求能够输出任意进制(1-10,16进制吧)的第N个数。
格式:结果 = func(进制,N)
例如:
func(2,100) 返回 1100011
func(8,100) 返回 143
func(16,100) 返回 63

大家各自搞个回复可见,以免影响其他人的思路。

afan 发表于 2021-4-6 18:09:12

2-10吧 1肿麽玩 :face (24):
模N取余

haijie1223 发表于 2021-4-6 18:27:55

afan 发表于 2021-4-6 18:09
2-10吧 1肿麽玩
模N取余
嗯,1进制属于特例了。2-10,16进制吧

afan 发表于 2021-4-6 18:43:14

**** Hidden Message *****

haijie1223 发表于 2021-4-6 19:23:06

afan 发表于 2021-4-6 18:43
**** 本内容被作者隐藏 ****
**** Hidden Message *****


a版表驱动大法NB啊。我只想到了用递归写法,而且这写法还无法解决0的占位问题。

Xxkwwz 发表于 2021-4-6 19:28:08

好难,我还是先看看进制转换吧{:1_243:}

zghwelcome 发表于 2021-4-6 19:55:28

本帖最后由 zghwelcome 于 2021-4-6 21:42 编辑

不会搞
**** Hidden Message *****

afan 发表于 2021-4-6 22:57:31

haijie1223 发表于 2021-4-6 19:23
**** 本内容被作者隐藏 ****




递归一直不怎么用,有效率问题和层次限制…
当然递归也有方便之处,比如可以简化循环结构

小兵 发表于 2021-4-7 11:16:37

原来你们都躲在这里

anythinging 发表于 2021-4-7 11:24:57

虽然不会,但带着仰慕的心情学习下

haijie1223 发表于 2021-4-9 12:17:00

小兵 发表于 2021-4-7 11:16
原来你们都躲在这里

这是深度的小兵?

gapkiller 发表于 2021-4-13 13:35:08

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
这是认真的吗......


xz00311 发表于 2021-4-13 16:11:22

太难了,楼上的好像答案跟楼主的不一样

a62105400 发表于 2021-4-13 18:03:19

驱动大法NB

gczxhzb 发表于 2021-5-26 14:48:43

看看版主的回答
页: [1] 2
查看完整版本: 给大家出个题目玩玩