美团2017/9/14笔试题
笔试结束后,自己写的,不知道是否对,没出验证了,留在这里吧
题目描述:
她想用这些数制造出更多的能够被 7 整除的数。于是她从这 n 个数中选出两个数,然后将
输入
第一行包含一个整数n。2 ≤n≤ 105
第二行包含n个正整数ai。1 ≤ai≤109
样例输入
3
127 1996 12
样例输出
4
#include<stdio.h> #include<iostream> #define N 20 using namespace std; int main() { int m,n,sum; int p[100001][2];//0 weishu 1 mod int v[6]={1,3,2,6,4,5};//10^{0,1,2,3,4,5} while(~scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) { scanf("%d",&m); p[i][0]=0;p[i][1]=m%7; do { m/=10; p[i][0]++; }while(m); p[i][0]=v[p[i][0]%6]; } //for(int i=0;i<n;i++) //cout<<p[i][0]<<" "<<p[i][1]<<endl; sum=0; for(int i=0;i<n;++i) for(int j=i+1;j<n;j++) { int t=(p[i][1]*p[j][0]+p[j][1])%7; if(t==0) sum++; t=(p[j][1]*p[i][0]+p[i][1])%7; if(t==0) sum++; } printf("%d\n",sum); } }