大数的余数(数字根)

阅读量: 39 编辑

对一个数字的各个位上的数字分别取余数并相加,然后再对结果取余数的操作称为"数字根"运算,也称为"数根"运算。这是因为最终结果通常是一个介于 1 到 9 之间的数字,即根据该数字的位数重复执行上述步骤,直到得到一个个位数的数字为止。

这个原理基于数学中的数字特性,其中每个数字对 9 取余数的结果与该数字本身对 9 取余数的结果相同。

例如,考虑一个两位数 ab(a 是十位,b 是个位),它可以表示为 10a + b。对于 10a + b 对 9 取余数,得到 (10a + b) % 9 = (9a + a + b) % 9 = (a + b) % 9。因此,ab 对 9 取余数的结果与 a + b 对 9 取余数的结果相同。

这一性质适用于任何数字,不仅限于两位数。因此,我们可以通过重复对数字的各个位上的数字取余数并相加,最终得到一个介于 1 到 9 之间的数字。

大数求余数

int numMod(char s[], int k) {
    int c[35] = {0};
    int len = strlen(s);
    for (int i = 0; i < len; i++) {
        c[i] = s[i] - '0';
    }
    int res = 0;
    int newNum = 0;
    //求余数
    for (int i = 0; i < len; i++) {
        newNum = res * 10 + c[i];
        res = newNum % k;
    }
    return res;
}
爱码岛编程公众号
微信扫码关注
爱码岛编程小程序
微信扫码打开
苏ICP备13052010号
©2023 南京匠成信息科技有限公司