21xrx.com
2024-06-03 06:13:04 Monday
登录
文章检索 我的文章 写文章
C++ 求余数公式
2023-07-08 18:31:58 深夜i     --     --
C++ 求余数公式 取余运算 模运算 % 运算符

C++ 在算法竞赛中被广泛使用,其中一个常见问题就是求余数。在 C++ 中,使用取模(%)运算符可以求得两个数相除的余数。但是对于一些需要高效解决的问题,取模运算会消耗大量的时间,因此需要使用其他方法来求余数。

在 C++ 中,有两种方法可以用于求余数,一种是使用取模运算符,另一种是使用求余数公式。

首先,我们来介绍求余数公式。我们知道,对于一个正整数 n 和另一个正整数 m,当 n 能够被 m 整除时,其商一定是一个整数,余数为 0。但当 n 不能被 m 整除时,其余数一定小于 m。

因此,我们可以使用以下的公式来求余数:

n % m = n - (n/m)*m

这个公式需要注意两个地方:

1. 防止除数为 0;

2. 防止 n/m 为浮点数,需要将它转化为整数。

接下来,我们将使用求余数公式来解决一个示例问题。

假设有一个长度为 100 的数组 a,需要将每个数都取模 7 的余数,那么使用取模运算符需要遍历整个数组,消耗大量时间。而我们可以使用求余数公式来高效地解决这个问题。

下面是我们实现的代码:

for(int i=0;i<100;i++){

  a[i]=a[i]- (a[i]/7)*7;

}

这段代码遍历了整个数组,将每个数都取模 7 的余数赋值给了 a[i]。

因此,我们可以看到,求余数公式可以有效地减少程序的运行时间,提高代码的效率。在算法竞赛等需要高效解决问题的场合中,求余数公式会是您的重要工具之一。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复