Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ผลรวมของตัวเลขไม่เกิน N ที่หารด้วย 2 หรือ 5 ลงตัวในการเขียนโปรแกรมภาษาซี


ผลรวมของจำนวนธรรมชาติ n จำนวนที่หารด้วย 2 หรือ 5 ลงตัว สามารถหาได้โดยการหาผลรวมของจำนวนธรรมชาติทั้งหมดไม่เกิน N ที่หารด้วย 2 ลงตัว และผลรวมของจำนวนธรรมชาติทั้งหมดไม่เกิน N ที่หารด้วย 5 ลงตัว แล้วนำผลบวกทั้งสองนี้มาบวกกัน แล้วลบมันด้วยผลบวกของจำนวนธรรมชาติสูงถึง N ที่หารด้วย 10 ลงตัว จะได้ผลลัพธ์ที่ต้องการ วิธีนี้เป็นวิธีที่มีประสิทธิภาพที่สามารถใช้ในการหาผลรวมของค่าขนาดใหญ่ของ n ได้

บางท่านคงกำลังคิดที่จะใช้คำสั่งแบบวนซ้ำและแบบมีเงื่อนไขแล้วบวกตัวเลขทั้งหมดที่หารด้วย 2 หรือ 5 ลงตัว แต่วิธีนี้ไม่มีประสิทธิภาพเพราะมีเวลาซับซ้อนของลำดับ n ซึ่งหมายความว่าสำหรับค่า n จำนวนมาก โปรแกรมจะรันลูป n จำนวนครั้ง และการดำเนินการนี้จะทำให้โปรแกรมหนักขึ้น

สูตรหาผลรวมของจำนวนธรรมชาติ n หารด้วย 2 ได้

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

สูตรหาผลรวมของจำนวนธรรมชาติ n หารด้วย 5 ได้

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

สูตรหาผลรวมของจำนวนธรรมชาติ n หารด้วย 10 ได้

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