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

โปรแกรม C/C++ ค้นหาตัวเตือนการคูณอาร์เรย์หารด้วย n?


การคูณอาร์เรย์ เราจะพบผลคูณขององค์ประกอบทั้งหมดของอาร์เรย์ที่กำหนด แล้วตามโจทย์เราจะหารผลคูณด้วยเลข 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