gpt4 book ai didi

c++ - 将基数 10 转换为 12,递归添加字母字符时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-04 15:46:30 24 4
gpt4 key购买 nike

我在使用递归将字母添加到 base 10 - base 12 转换时遇到问题。我将如何在我的函数中添加字母?我正在考虑添加一个 if 语句,但我不知道在哪里以及如何去做。感谢指点 谢谢!

给定从 1 到 12 的计数:

Dec 1 2 3 4 5 6 7 8 9 10 11 12 

Duo 1 2 3 4 5 6 7 8 9 X E 10

我的功能:

template<class myType>
myType convertDec(myType number){
if(number == 0)
return number;
//if statement somewhere in here? not sure considering i can't touch the return statement
return (number % 12) + 10*convertDec(number / 12);
}

示例理想输出:

65280 = 31940 (工作正常)

2147483626 = 4EE23088X (不起作用!)

最佳答案

#include <iostream>
#include <string>

using namespace std;

string ConvertToDuodecimal(unsigned long long n)
{
if (n < 12)
return string() + "0123456789XE"[n];
return ConvertToDuodecimal(n / 12) + ConvertToDuodecimal(n % 12);
}

int main()
{
cout << ConvertToDuodecimal(0) << endl;
cout << ConvertToDuodecimal(1) << endl;
cout << ConvertToDuodecimal(10) << endl;
cout << ConvertToDuodecimal(11) << endl;
cout << ConvertToDuodecimal(12) << endl;
cout << ConvertToDuodecimal(13) << endl;
cout << ConvertToDuodecimal(65280) << endl;
cout << ConvertToDuodecimal(2147483626) << endl;
return 0;
}

输出(ideone):

0
1
X
E
10
11
31940
4EE23088X

关于c++ - 将基数 10 转换为 12,递归添加字母字符时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15908644/

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