AP协会训练第二周:进制转换

题目要求

输入一个十进制数N,将它转换成R进制数输出。

输入

输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。

输出

为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。

IO 实例

输入:74921 16
输出:124A9
输入:167480 9
输出:274658
输入:-2437443 11
输出:-1415318
输入:-2325324 15
输出:-30DEB9
输入:143 16
输出:8F
输入:^z(ctrl+z)
输出:Process finished with exit code 0

AC 代码

#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;

char ch[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

string iop(int m, int n) {
    char s[1000] = {0};
    char ans[1000] = {0};
    int flag = 0;
    int i = 0, j = 0;
    if (m < 0) {
        m = -m;
        flag = 1;
    };
    while (1) {
        s[i++] = ch[m % n];
        m /= n;
        if (m == 0) {
            break;
        }
    }
    i--;
    if (flag) {
        ans[j++] = '-';
    }
    while (i >= 0) {
        ans[j++] = s[i--];
    }
    return ans;
}

int main() {
    int m, n;
    while (cin >> m >> n) {
        cout << iop(m, n) << endl;
    }
    return 0;
}

后话

为啥记这一个题呢,因为我发现string类型的函数返回值居然可以是char字符串?!有点东西。还有就是怕忘了咋做,留着以后看好了。
水题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AP(affinity propagation)聚类也被称为近邻传播聚类,它是一种半监督聚类算法。与传统的聚类方法不同,AP聚类不需要事先设定聚类簇的个数,而是通过分析数据点之间的相似性来自动划分数据集。 AP聚类的核心思想是任意两个数据点之间的相似性传播。相似性可以通过计算数据点之间的相似度来衡量,相似度可以是一种度量或者一个简单的距离函数。AP聚类算法中的相似度矩阵表示每对数据点之间的相似性。 AP聚类的过程如下:首先,初始化数据点的选择集合,将其作为当前候选出的聚类中心。然后,通过迭代更新两个矩阵:归属度矩阵和候选出矩阵。归属度矩阵表示每个数据点归属于每个聚类中心的程度,而候选出矩阵表示每个数据点是否被选择为聚类中心的候选。 在每次迭代中,首先更新归属度矩阵。对于每个数据点,计算其与其他数据点的相似性,选择与其相似度最高的数据点作为其聚类中心,同时更新其他数据点对该聚类中心的归属度。接下来,更新候选出矩阵。对于每个数据点,计算其与其他数据点的归属度之和,如果该和大于一个阈值,则将其设置为聚类中心的候选。 通过反复迭代更新归属度矩阵和候选出矩阵,直到算法收敛为止。最终,聚类中心将作为数据点的标签,每个数据点将被划分到与其最相似的聚类中心。 AP聚类的优点是不需要预先设定聚类簇的个数,可以自动发现数据集中的聚类结构。然而,由于其计算和存储相似性矩阵的复杂性,AP聚类对于大规模数据集的处理效率较低。同时,由于其依赖于阈值的选择,AP聚类的结果对于参数的选择较为敏感。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值