การคูณอาร์เรย์ เราจะพบผลคูณขององค์ประกอบทั้งหมดของอาร์เรย์ที่กำหนด แล้วตามโจทย์เราจะหารผลคูณด้วยเลข n มาดูตัวอย่างกัน −
Input: arr[] = { 12, 35, 69, 74, 165, 54}; N = 47 Output: 14
คำอธิบาย
อาร์เรย์เป็นเหมือน {12, 35, 69, 74, 165, 54} ดังนั้นการคูณจะเป็น (12 * 35 * 69 * 74 * 165 * 54) =19107673200 ทีนี้ถ้าเราต้องการหาเศษหลังจากหารด้วย 47 จะเป็น 14
คูณตัวเลขทั้งหมดก่อนจากนั้นจึงนำ % ไป n จากนั้นจึงหาตัวเตือน แต่ในแนวทางนี้ หากจำนวนสูงสุดคือ 2^64 ก็จะให้คำตอบที่ผิด
ตัวอย่าง
#include <stdio.h> int main() { int arr[] = { 12, 35, 69, 74, 165, 54}; int len = 6; int n = 47 ; int mul = 1; for (int i = 0; i < len; i++) mul = (mul * (arr[i] % n)) % n; printf("the remainder is %d", (mul%n)); return 0; }
ผลลัพธ์
the remainder is 14