UVa12195 - Jingle Composing(strtok的使用)
来源:互联网 发布:圣象地板 知乎 编辑:程序博客网 时间:2024/06/06 00:38
A. C. Marcos is taking his first steps in the direction of jingle composition. He is having some troubles, but at least he is achieving pleasant melodies and attractive rhythms.
In music, a note has a pitch (its frequency, resulting in how high or low is the sound) and a duration (for how long the note should sound). In this problem we are interested only in the duration of the notes.
A jingle is divided into a sequence of measures, and a measure is formed by a series of notes.
The duration of a note is indicated by its shape. In this problem, we will use uppercase letters to indicate a note's duration. The following table lists all the available notes:
The duration of a measure is the sum of the durations of its notes. In Marcos' jingles, each measure has the same duration. As Marcos is just a beginner, his famous teacher Johann Sebastian III taught him that the duration of a measure must always be 1.
For example, Marcos wrote a composition containing five measures, of which the first four have the correct duration and the last one is wrong. In the example below, each measure is surrounded with slashes and each note is represented as in the table above.
Marcos likes computers as much as music. He wants you to write a program that determines, for each one of his compositions, how many measures have the right duration.
Input
The input contains several test cases. Each test case is described in a single line containing a string whose length is between 3 and 200 characters, inclusive, representing a composition. A composition begins and ends with a slash `/
'. Measures in a composition are separated by a slash `/
'. Each note in a measure is represented by the corresponding uppercase letter, as described above. You may assume that each composition contains at least one measure and that each measure contains at least one note. All characters in the input will be either slashes or one of the seven uppercase letters used to represent notes, as described above.
The last test case is followed by a line containing a single asterisk.
Output
For each test case your program must output a single line, containing a single integer, the number of measures that have the right duration.
Sample Input
/HH/QQQQ/XXXTXTEQH/W/HW/ /W/W/SQHES/ /WE/TEX/THES/ *
Sample Output
4 3 0题意:给出一行字符串,求出两个斜杠之间的字母之和是否等于1,统计个数
思路:注意用浮点数精确度的问题,在这里用W=64,H=32, Q=16, E=8, S=4, T=2, X=1,计算两斜杠之间的数字之和,看是否等于64
#include <cstdio>#include <cstring>#include <map>using namespace std;const int MAXN = 210;char str[MAXN];int cal(char ch){ switch (ch) { case 'W': return 64; case 'H': return 32; case 'Q': return 16; case 'E': return 8; case 'S': return 4; case 'T': return 2; case 'X': return 1; }}bool input() { scanf("%s", str); if (strcmp(str, "*") == 0) return false; return true;}void solve() { char *p = strtok(str, "/"); int ans = 0; while (p) { int sum = 0; for (int i = 0, len = strlen(p); i < len; i++) { sum += cal(p[i]); } //printf("sum=%lf\n", sum); if (sum == 64) ans++; p = strtok(NULL, "/"); } printf("%d\n", ans);}int main() {#ifndef ONLINE_JUDGE freopen("/cygdrive/d/OJ/uva_in.txt", "r", stdin);#endif while (input()) { solve(); } return 0;}
- UVa12195 - Jingle Composing(strtok的使用)
- strtok的使用
- strtok()函数的使用
- HDU 1106(strtok的使用)
- strtok嵌套使用的解决方法
- strtok函数的使用注意事项
- strtok函数的使用注意事项
- strtok使用...
- strtok使用
- Smack Jingle BindException 地址已经被使用
- 函数strtok和strchr的使用
- strtok和strtok_r的使用原理
- 排序(hdu1106 strtok函数的使用)
- strtok函数的使用与实现
- 关于使用strtok的一个小问题
- 浅谈strtok函数的使用心得
- 浅谈strtok函数的使用心得
- linux下strtok和strtok_r的使用
- 配置eclipse linux嵌入式 集成开发环境(编译部分)详细
- SDL版Flappy bird代码分享
- C#中关于out和ref的使用
- sdutoj2484 算术表达式的转换 栈思想
- 连接数据库
- UVa12195 - Jingle Composing(strtok的使用)
- 模板名称决议
- 1412111930-hd-Easier Done Than Said
- oracle性能优化
- Z-stack是什么
- 最新 Sublime Text 3 Package Control 安装
- 复杂ListView:微信对话列
- A/D转换相关问题
- OC学习篇之---归档和解挡