在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