gpt4 book ai didi

c - 什么算法将数字 27 映射到 BBC

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:00 24 4
gpt4 key购买 nike

为了澄清混淆 - 我想编写一个将数字映射到以下字母组合列表的函数。

下表最能说明我的问题。

A   1
B 2
C 3
AA 4
AB 5
AC 6
BA 7
BB 8
BC 9
CA 10
CB 11
CC 12
AAA 13
AAB 14
AAC 15
ABA 16
ABB 17
ABC 18
ACA 19
ACB 20
ACC 21
BAA 22
BAB 23
BAC 24
BBA 25
BBB 26
BBC 27

我想设计一个能够将给定数字映射到此表左列的函数。我试过先给字母分配数字。

A = 0
B = 1
C = 2

这使我可以形成下表(Cn - 列号,从右到左)。

C3  C2  C1  Number

0 1
1 2
2 3
0 0 4
0 1 5
0 2 6
1 0 7
1 1 8
1 2 9
2 0 10
2 1 11
2 2 12
0 0 0 13
0 0 1 14
0 0 2 15
0 1 0 16
0 1 1 17
0 1 2 18
0 2 0 19
0 2 1 20
0 2 2 21
1 0 0 22
1 0 1 23
1 0 2 24
1 1 0 25
1 1 1 26
1 1 2 27

所以这看起来像是一种递归循环类型的算法,但我不知道如何将其写成代码。有什么建议吗?

最佳答案

无论是谁(用户:n.m.)写了消失的评论,这只是以 3 为基数的计数,除了所有数字都偏移 +1。数字真的代表A=0, B=1, C=2

因此 BBC = ('B'+1)*3^2 + ('B'+1)*3 + ('C'+1) = 2*9 + 2*3 + 3 = 27

fromInt() 的伪代码,Antoine 已经给了你。同样的想法:

char* fromInt(int n) {
result = ""
working_val = (n-1)
while (working_val>0) {
Prepend to result the digit "CAB"[ working_val % 3 ]
working_val /= 3
}
return result
}

严格来说,我们不关心捕获 Antoine 指出的特殊情况 0,因为您的列表没有 0 的表示。

关于c - 什么算法将数字 27 映射到 BBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23029695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com