swadmin 2022-01-29 10:54 采纳率: 90%
浏览 47
已结题

c++算法:3891: 进制数

题目描述
小T学完了进制转换,觉着特别神气,这不?要求出一个进制转换的问题考考他。
问题是这样的:
写下一个10进制数N和B进制数M,已知M是N转成的B进制数,求B是多少?
输入
两个数N和M。(N<=20亿)
输出
一个整数B(B保证不超过20,且大于1),如果有多个答案正确,则按从小到大顺序输出20以内的答案,每行一个。
样例
输入 复制
6 110
输出 复制
2
提示

  • 写回答

1条回答 默认 最新

  • [PE]经典八炮 2022-01-29 11:37
    关注
    #include<iostream>
    int To10(const std::string & num, int radix)
    {
        int result = 0;
        int temp = 1;
        for (auto iter = num.rbegin(); iter != num.rend(); ++iter)
        {
            result += (*iter - '0') * temp;
            temp *= radix;
        }
        return result;
    }
    int main()
    {
        int n;
        std::string m;
        std::cin >> n >> m;
        for (int b = 2; b <= 20; ++b)
        {
            if (To10(m, b) == n)
                std::cout << b << std::endl;
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    [PE]经典八炮 2022-01-29 11:41

    如果有帮助请采纳,有问题继续交流

    1
    回复
    swadmin 2022-01-29 11:42

    [Warning] 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]

    回复
    swadmin 回复 [PE]经典八炮 2022-01-29 11:48

    for (auto iter = num.rbegin(); iter != num.rend(); ++iter)这一行编辑错误

    回复
    展开全部4条评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 2月5日
  • 已采纳回答 1月29日
  • 创建了问题 1月29日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部