题目描述 Description
小明自认为方向感很好,请小红来测试。小红先让小明面对北方立正站好,然后发出“向左转”“向右转”或“向后转”的命令。每个命令执行后,小明都正确地说出了他面对的方向。小红的命令共N个(1≤n≤10000),请你统计小明说【南】的次数。
命令是以数字方式表达:
0---向左转
1---向右转
2---向后转
如小红发出的5个命令:0 1 0 0 1 ;小明共有5个回答:西 北 西 南 西
输入描述 Input Description
2行
第一行:正整数n,1≤n≤10000
第二行:n个用0 1 2表示的指令
输出描述 Output Description
一个整数,小明说“南”的次数
样例输入 Sample Input
5
0 1 0 0 1
样例输出 Sample Output
1
虽然测试数据全部无输出。。。。。。
但还是得讲讲思路
我的想法是规定0为北,±1为西,±2为南
那么如果是输入为0,则减去1并mod 3
如果是1,则加上1 再mod 3
如果是2,则加上2 再 mod 3
#include<iostream>
#include<cmath>
using namespace std;
int now=0;
int n,x,i,s;
int main(){
cin>>n;
for(i=1;i<=n;i++)
{
cin>>x;
if(x==0)now=(now-1)%3;
if(x==1)now=(now+1)%3;
if(x==2)now=(now+2)%3;
if(now==-2 || now==2)s++;
}
cout<<s;
return 0;
}
实在不想打也可以这样刷测评.....
begin end.随你便咯!