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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP