ที่นี่เราจะดูวิธีรับสองหลักสุดท้าย หลักหน่วยและหลักสิบของผลรวมของแฟคทอเรียล N ดังนั้นถ้า N =4 มันจะเป็น 1! + 2! +3! +4! =33. ดังนั้นหน่วยหลักคือ 3 และสิบอันดับคือ 3 ผลลัพธ์จะเป็น 33.
หากเราเห็นสิ่งนี้อย่างชัดเจน เมื่อแฟกทอเรียลของ N> 5 ตำแหน่งของหน่วยเป็น 0 ดังนั้นหลังจาก 5 จะไม่มีส่วนในการเปลี่ยนตำแหน่งของหน่วย และหลังจาก N> 10 หลักสิบจะยังคงเป็น 0 สำหรับ N =10 และมากกว่านั้น มันจะเป็น 00 เราสามารถสร้างแผนภูมิสำหรับ N =1 ถึง 10 ของจำนวนแฟคทอเรียลได้
เราสามารถแก้ปัญหานี้ได้โดยใช้ขั้นตอนเหล่านี้ -
- หากค่าของ n น้อยกว่า 10 ดังนั้น (1! + 2! + … + n!) mod 10
- มิฉะนั้น เมื่อค่าของ n มากกว่าหรือเท่ากับ 10 ดังนั้น (1! + 2! + … + 10!) mod 10 =13
ตัวอย่าง
#include<iostream> #include<cmath> using namespace std; int getTenAndUnitPlace(long long N) { if (N <= 10) { long long ans = 0, factorial = 1; for (int i = 1; i <= N; i++) { factorial = factorial * i; ans += factorial; } return ans % 100; } return 13; } int main() { for(long long i = 1; i<15; i++){ cout << "Ten and Unit place value of sum of factorials when N = "<<i<<" is: " <<getTenAndUnitPlace(i) << endl; } }
ผลลัพธ์
Ten and Unit place value of sum of factorials when N = 1 is: 1 Ten and Unit place value of sum of factorials when N = 2 is: 3 Ten and Unit place value of sum of factorials when N = 3 is: 9 Ten and Unit place value of sum of factorials when N = 4 is: 33 Ten and Unit place value of sum of factorials when N = 5 is: 53 Ten and Unit place value of sum of factorials when N = 6 is: 73 Ten and Unit place value of sum of factorials when N = 7 is: 13 Ten and Unit place value of sum of factorials when N = 8 is: 33 Ten and Unit place value of sum of factorials when N = 9 is: 13 Ten and Unit place value of sum of factorials when N = 10 is: 13 Ten and Unit place value of sum of factorials when N = 11 is: 13 Ten and Unit place value of sum of factorials when N = 12 is: 13 Ten and Unit place value of sum of factorials when N = 13 is: 13 Ten and Unit place value of sum of factorials when N = 14 is: 13