博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
08:石头剪刀布(1.6)
阅读量:6217 次
发布时间:2019-06-21

本文共 1658 字,大约阅读时间需要 5 分钟。

分析:

一、赢输平三种情况

0表示“石头”,2表示“剪刀”,5表示“布

赢t:

0-2=-2

2-5=-3

5-0=5

输t:

2-0=2

5-2=3

0-5=-5

平t:两边的值相等

 二、计算出拳情况,然后一一对比

 

对于测试数据,猜拳过程为:

A:0 2 5 0 2 5 0 2 5 0
B:0 5 0 2 0 5 0 2 0 5
A赢了4轮,B赢了2轮,双方打平4轮,所以A赢的轮数多。

方法1:使用数组存储双方所有的出拳情况,然后一一对比即可

 

以规律为na为例

 int t=0;  //初值为0  for (int i=1;i<=n;i++){   t++;   a[i]=ya[t];   if (i%na==0)t=0 ; //如果i是na的倍数,t恢复初值0  }

#include
int a[110],b[110],ya[110],yb[110];int main(){ int n,na,nb; scanf("%d%d%d",&n,&na,&nb); int temp; for (int i=1;i<=na;i++) scanf("%d",&ya[i]); for (int i=1;i<=nb;i++) scanf("%d",&yb[i]); int t=0; for (int i=1;i<=n;i++){ t++; a[i]=ya[t]; if (i%na==0)t=0 ; } t=0; for (int i=1;i<=n;i++){ t++; b[i]=yb[t]; if (i%nb==0)t=0 ; } int suma=0,sumb=0; for (int i=1;i<=n;i++){ if (a[i]-b[i]==-2||a[i]-b[i]==-3 ||a[i]-b[i]==5)suma++; if (a[i]-b[i]==-5||a[i]-b[i]==3||a[i]-b[i]==2) sumb++; } if (suma>sumb)printf("A\n"); if (suma
View Code

 方法2:边出拳边比较。这样可以节约1个数组。

#include
int a[110],b[110],ya[110],yb[110];int main(){ int n,na,nb; scanf("%d%d%d",&n,&na,&nb); int temp; for (int i=1;i<=na;i++) scanf("%d",&ya[i]); for (int i=1;i<=nb;i++) scanf("%d",&yb[i]); int suma=0,sumb=0,t0=0,t1=0; for (int i=1;i<=n;i++){ t0++;t1++; if (ya[t0]-yb[t1]==-2||ya[t0]-yb[t1]==-3 ||ya[t0]-yb[t1]==5)suma++; if (ya[t0]-yb[t1]==-5||ya[t0]-yb[t1]==3||ya[t0]-yb[t1]==2) sumb++; if (i%na==0) t0=0 ; if (i%nb==0) t1=0 ; } if (suma>sumb)printf("A\n"); if (suma
View Code

 

转载于:https://www.cnblogs.com/ssfzmfy/p/5144158.html

你可能感兴趣的文章
Android Studio中 图片资源存在但是运行时报错的问题
查看>>
vue生命周期(简短精干篇)
查看>>
c#实现识别图片上的验证码数字
查看>>
php编译安装过程中遇到问题
查看>>
huffman树即Huffma编码的实现
查看>>
样式问题
查看>>
Android服务端本地窗口FramebufferNativeWindow
查看>>
fseek()函数
查看>>
haystack+Elasticsearch搜素引擎
查看>>
C# Winform向网页传值
查看>>
Java 设计模式学习总结(下)
查看>>
【leetcode】1046. Last Stone Weight
查看>>
ES6新特性2:变量的解构赋值
查看>>
Go环境下,编译运行etcd与goreman集群管理(1)
查看>>
Linux内核数据结构
查看>>
sitemesh入门
查看>>
算法第二章上机实践报告
查看>>
【洛谷 P1419】 寻找段落(二分答案,单调队列)
查看>>
函数的练习
查看>>
线性布局
查看>>