wikioi 1512 转向游戏

小明自认为方向感很好,请小红来测试。小红先让小明面对北方立正站好,然后发出“向左转”“向右转”或“向后转”的命令。每个命令执行后,小明都正确地说出了他面对的方向。小红的命令共N个(1≤n≤10000),请你统计小明说【南】的次数。

命令是以数字方式表达:

0---向左转

1---向右转

2---向后转

如小红发出的5个命令:0 1 0 0 1 ;小明共有5个回答:西 北 西 南 西

2行

第一行:正整数n,1≤n≤10000

第二行:n个用0 1 2表示的指令

一个整数,小明说“南”的次数

5

0 1 0 0 1

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.
随你便咯!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值