这题看似是一道简单题 ,两个for就可以解决 ,但瞄了一眼数据范围的我明白这题的考点 ,1<=a[i]<=1e9 , 如果1e5个数据都很大 ,肯定会超过long long甚至int的范围 , 既然题目只要判断个位数是否是6 ,那么我们就在有关a[i]的每一步上加上%10 ,毕竟十位百位的乘积管我个位什么事 ,这样这题就解决了 。ps:本人第一次交时因为公式里有i-1 , i就理所应当从2开始导致a[1]没有判断致使错误 ,所以大家不要因为想出解决方法就粗心啊!
- int: 通常为32位,表示带符号的整数,范围约为 -2,147,483,648 到 2,147,483,647。
- long long: 通常为64位,表示带符号的长长整数,范围约为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
using namespace std;
typedef long long ll;
const int N=2e5+10;
int t,n,ans=0;
int a[N];
void solve()
{
cin>>n;
a[0]=1;
for(int i=1;i<=n;++i){
cin>>a[i];
a[i]%=10;
}
for(int i=1;i<=n;++i){
a[i]=a[i-1]*a[i]%10;
if(a[i]==6){
ans++;
}
}
cout<<ans<<endl;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
t=1;
//cin>>t;
while(t--)
{
solve();
}
return 0;
}