青少年编程知识记录 codecoming

【题解】取余(2019青岛市程序设计竞赛)

【问题描述】

给你n个正整数a1,a2,..,an。

求(a1*a2*..an)%10007的值。

【输入】

第一行,n,表示整数的个数。

第二行,n个用空格隔开的正整数。

【输出】

一个整数,(a1*a2*..an)%10007的值。

【样例输入输出】

mod.in

mod.out

2

10 20

200

【数据规模和约定】

30%的数据:a1*a2*..*an<2000000000;

100%的数据:n<=1000, 0<ai<=110。

【来源】

2019年青岛市程序设计竞赛试题(小学组)1T

  • 比较简单的模拟题,难点在于数据范围。

  • 如果用数论的知识就比较简单,(a*b)%p= (a%p * b%p)%p;

  • 数据范围比较大的话用long long






【参考代码】

#include<iostream>  using namespace std;  long long a[1001];  long long n,ans=1;  int main()  {  	cin>>n;  	for(int i=0;i<n;i++){  		cin>>a[i];  		a[i]=a[i]%10007;  		ans=ans*a[i];  	}  	ans=ans%10007;  	cout<<ans;  	return 0;		  }





(adsbygoogle = window.adsbygoogle || []).push({});

作者:亿万年的星光 分类:题解目录 浏览: