在C编程中最多可被2或5整除的N之和

通过找到不超过2的N的所有自然数之和和不超过5的N的所有自然数之和,可以找到2或5可除的n个自然数的总和。然后将其乘以最多等于N的自然数之和,然后将其除以10,就可以得到所需的结果。此方法是一种有效的方法,可用于查找最多n个值的和。

你们中的某些人必须考虑使用循环和条件语句,然后将所有可以被2或5整除的数字相加,但是此方法效率低下,因为它的时间复杂度为n阶。这意味着对于较大的n值,程序将循环运行n次。而这种执行将使程序变重。

查找可被2整除的n个自然数之和的公式 

Sum2 = ((n / 2) * (4 + (n / 2 - 1) * 2)) / 2

查找可被5整除的n个自然数之和的公式 

Sum5 = ((n / 5) * (10 + (n / 5 - 1) * 5)) / 2

查找可被10整除的n个自然数之和的公式 

Sum10 = ((n / 10) * (20 + (n / 10 - 1) * 10)) / 2

所需的输出

Sum = Sum2 + Sum5 - Sum10

示例

#include <stdio.h>
int main() {
   int n = 25;
   long int sum2, sum5, sum10;
   sum2 = ((n / 2) * (4 + (n / 2 - 1) * 2)) / 2;
   sum5 = ((n / 5) * (10 + (n / 5 - 1) * 5)) / 2;
   sum10 = ((n / 10) * (20 + (n / 10 - 1) * 10)) / 2;
   long int sum = sum2 + sum5 - sum10;
   printf("Sum is %d", sum);
   return 0;
}

输出结果

Sum is 201