NYOJ 题目835
2017-07-15 09:59
176 查看
吉他练习
时间限制:1000 ms | 内存限制:65535 KB难度:1
描述
念情最近买了一把吉他,接着开始了他的吉他课程。老师在叫他把532123练习熟练了之后,教给了他三个和弦,C Am Em。要求念情按照这个顺序一直练习下去,知道老师认可才教他下一步。
可是念情刚学,经常出错,你需要做的是,判断念情是否有弹错
输入多组测试数据
每组输入一个字符串,仅有C Am Em
字符串长度不超过200输出如果念情没有弹错,则输出"YES"
反之,输出"NO"样例输入
CAmEmCAmEmCAmEmCAmEm CAmEmCCAmEm CAmEmCAm
样例输出
YES NO YES
提示不一定非要把三个和弦弹完,只要顺序正确就行这道题一开始写的时候认为AmEmCAmEm,或者是EmCAmEm这类的顺序也可以,因为最后提示说“不一定非要把三个和弦弹完,只要顺序正确就可以”,后来发现这句话是指弹完一个完整的节奏后面的调子。思路的话先求出字符串长度,求出除以5的余数及商,然后先5个5个一判断是否符合CAmEm,之后的余数根据顺序一个一个判断字符是否相同即可。
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int i,j,n,m,Len1,k,t; char s[300]={0}; while(scanf("%s",s)!=EOF) { Len1=strlen(s); n=Len1/5; m=Len1%5; for(i=0,k=0;i<n*5;i=i+5) { if((s[i]=='C')&&(s[i+1]=='A')&&(s[i+2]=='m')&&(s[i+3]=='E')&&(s[i+4]=='m')) k++; else break; } if(m==0) { if(k==n) printf("YES\n"); else printf("NO\n"); continue; } if(m==1) { if((s[i]=='C')&&(k==n)) printf("YES\n"); else printf("NO\n"); continue; } if(m==2) { if((s[i]=='C')&&(k==n)&&(s[i+1]=='A')) printf("YES\n"); else printf("NO\n"); continue; } if(m==3) { if((s[i]=='C')&&(k==n)&&(s[i+1]=='A')&&(s[i+2]=='m')) printf("YES\n"); else printf("NO\n"); continue; } if(m==4) { if((s[i]=='C')&&(k==n)&&(s[i+1]=='A')&&(s[i+2]=='m')&&(s[i+3]=='E')) printf("YES\n"); else printf("NO\n"); continue; } } return 0; }
4000
相关文章推荐
- NYOJ 题目236 心急的C小加
- NYOJ 题目952 最大四边形(几何,技巧)
- NYOJ 题目79 拦截导弹
- NYOJ 题目111 分数加减法
- NYOJ 题目1022合纵连横
- NYOJ 题目77 开灯问题
- NYOJ--21(搜索)-题目-----------------------------三个水杯
- NYOJ-927(搜索)-题目-----------------------------The partial sum problem
- NYOJ---题目27水池数目
- NYOJ 题目711 最舒适的路线
- NYOJ 题目716 River Crossing
- NYOJ 题目710 外星人的供给站(贪心区间覆盖)
- NYOJ 题目1091 还是01背包(二分,超大01背包)
- NYOJ 题目17 单调递增最长子序列
- NYOJ---题目477A+B Problem III
- NYOJ---题目733万圣节派对
- NYOJ题目6 喷水装置(一)
- NYOJ-题目221 Tree
- NYOJ 题目55 懒省事的小明
- nyoj 题目10 skiing —— 南阳oj