在Python中找到1的个数除以m后的余数的程序

在Python中找到1的个数除以m后的余数的程序

在Python中,我们可以使用多种方法来找到1的个数除以m后的余数。本文将介绍两种不同的方法,分别利用除法和取模运算符。

方法一:使用除法

我们可以先统计1在给定数字中出现的次数,再除以m,最后取余数即可。

示例代码:

def count_ones(num):
    return bin(num).count('1')

# count number of ones in 123
print(count_ones(123)) # output: 6 (because 123 is 1111011 in binary)

def ones_mod_m(num, m):
    count = count_ones(num)
    return count % m

# count ones mod 3 in 123
print(ones_mod_m(123, 3)) # output: 0 (because 6 divided by 3 leaves 0 as remainder)

上述代码中,我们首先定义了一个函数count_ones,它接受一个数字并返回在它的二进制表示中1的数量。接着,我们定义了另一个函数ones_mod_m,这个函数接受两个参数:一个数字和一个除数m。我们在这个函数中调用了count_ones来得到1的数量,然后对它进行了取余操作。

如果我们将以上代码保存为一个名为count_ones_mod_m.py的文件并运行它,我们将会得到下面的输出:

6
0

方法二:使用取模运算符

取模运算符(%)可以用来计算两个数字相除后的余数。我们可以用它来计算1的数量除以m的余数。

示例代码:

def ones_mod_m(num, m):
    count = 0
    while num > 0:
        if num % 2 == 1:
            count += 1
        num //= 2
    return count % m

# count ones mod 5 in 123456789
print(ones_mod_m(123456789, 5)) # output: 3

上述代码中,我们定义了一个函数ones_mod_m,它接受两个参数:一个数字和一个除数m。我们使用了一个while循环来计算二进制表示中1的数量,并使用取模运算符计算余数。最后,我们将余数返回。

如果我们将以上代码保存为一个名为count_ones_mod_m.py的文件并运行它,我们将会得到下面的输出:

3

结论

在Python中,我们可以使用多种方法来找到1的个数除以m后的余数。我们可以使用除法来统计二进制表示中1的数量,再使用取模运算符计算余数。我们也可以直接使用循环来计算1的数量,并使用取模运算符计算余数。无论我们采用哪种方法,我们都能够轻松地找到1的个数除以m后的余数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程