2291 - 接水大战
Time Limit : 1 秒
Memory Limit : 128 MB
一天小D和小Q在宿舍里无聊,小D看到了宿舍里的饮水机灵机一动,想出了个游戏。饮水机里有N个单位的水。小D和小Q都有一个能装2个单位水的水杯和一个能装3个单位水的水杯。小D和小Q轮流去装水然后喝掉,每次只能拿一个杯子去装且必须装满。谁装走最后一个单位的水并且把当前的正在装的水杯装满为胜。若装走了最后一个单位的水,但却没有把正在装的水杯装满,则为平局。每次都是小D先装,两个人都清楚每时每刻饮水机还有多少水,并且都选择最优策略。也就是胜>平>败。请帮忙判断胜负。
Input
每组样例占一行,输入一个整数n,代表每句开始饮水机有几个单位的水
n>0且n<10000
Output
每组样例输出一个整数占一行
小D胜利输出1,失败输出-1.平局输出0
Examples
Input Format
7
Output Format
1
Solution C
#include<stdio.h> int main(){ int n; while(scanf("%d",&n) != EOF){ if(n%5==1){ printf("0\n"); }else if(n%5==2){ printf("1\n"); }else if(n%5==3){ printf("1\n"); }else if(n%5==4){ printf("0\n"); }else if(n%5==0){ printf("-1\n"); } } }
Solution C++
#include <iostream> using namespace std; int main(int argc, char *argv[]) { //freopen("test.in","r",stdin); //freopen("test.out","w",stdout); int n; while(cin>>n){ n++; if(n%5==1) cout<<-1<<endl; else if(n%5>2) cout<<1<<endl; else cout<<0<<endl; } return 0; }