连乘问题
题目描述
给定 n 个正整数 a[1],a[2],...,a[n],请计算一组乘积,记为 A[i];
这个A[i]就是 a[1]到 a[n]的连乘(除去 a[i]).
由于答案可能比较大,输出每个 A[i] 模 10000 的余数。
输入格式
第一行:一个正整数 n 。
第二行:n 个正整数 a[1],a[2],...,a[n]。
输出格式
输出共 n 行:第 i 行输出 A[i] 。
样例 #1
样例输入 #1
4
1 3 4 6
样例输出 #1
72
24
18
12
提示
对于
100% 的数据,
2≤n≤10 ^5, 1≤a[i]≤10000 。
代码:
#include<bits/stdc++.h>
#define int unsigned long long
#define uper 100007
using namespace std;
int a[uper],sum[uper];
int n;
signed main(){
cin >> n;
sum[0] = 1;
for(int i=1;i<=n;++i){
cin >> a[i];
sum[i] = sum[i-1]*a[i]%10000;
}
for(int i=1;i<=n;++i){
cout << sum[n]/a[i] << endl;
}
}