告诉你一个小技巧,别人我都不说的,你看我的二维数组
- const int j[5][5]={
- +0,-1,+1,+1,-1,
- +1,+0,-1,+1,-1,
- -1,+1,+0,-1,+1,
- -1,-1,+1,+0,+1,
- +1,+1,-1,-1,+0
- };
复制代码
完整地程序:
- #include<iostream>
- using namespace std;
- const int j[5][5]={
- +0,-1,+1,+1,-1,
- +1,+0,-1,+1,-1,
- -1,+1,+0,-1,+1,
- -1,-1,+1,+0,+1,
- +1,+1,-1,-1,+0
- };
- int n,na,nb,sa,sb,i;
- const int mm=209;
- int a[mm],b[mm];
- int ta,tb;
- int main()
- {
- cin>>n>>na>>nb; ///和题目里面的变量统一,尽可能避免理解失误
- for (i=0;i<=na-1;i++) cin>>a[i];
- for (i=0;i<=nb-1;i++) cin>>b[i];
- sa=sb=0;
- for (i=0;i<=n-1;i++)
- {
- ta=a[i%na]; ///不要嵌套太多,清晰至上
- tb=b[i%nb];
- ///cout<<ta<<':'<<tb<<endl; 检查
- if (j[ta][tb]==1) sa++;
- else if (j[ta][tb]==-1) sb++;
- }
- cout<<sa<<' '<<sb;
- return 0;
- }
复制代码 |