T1:
酸的命名(acid.cpp)
题目描述
化学于光羽而言简直是一个噩梦!请你帮他分辨这两种酸: polyatomic和non-metal。
- 用字符串表示一种化学用品,如果它的开头是hydro且结尾是
ic
那么就是non-metal。 - 如果仅仅结尾是ic那么就是polyatomic
- 不满足以上两个条件,他就是not an acid
格式
输入第一行,一个数q,表示询问个数。接下来q行,每行一个字符串描述化学用品。
输出一共q行,每行为non-metal acid或polyatomic acid或not an acid
范围
q <= 100
2 <= 字符串长度 <= 10000
没有什么算法,只要稍微加一些判断
程序如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
freopen("acid.in","r",stdin);
freopen("acid.out","w",stdout);
int n;
string s="hydro";
char ch[10005];
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
scanf("%s",&ch);
int len=strlen(ch);
if (ch[len-1]=='c'&&ch[len-2]=='i') //结尾为 ic
{
int f=1;
for (int j=0;j<5;j++)
if (ch[j]!=s[j]) {f=0;break;} //判断是不是 non-metal acid
if (f==1) cout<<"non-metal acid"; //如果是则输出 non-metal acid
if (f==0) cout<<"polyatomic acid"; //不是则输出 polyatomic acid
}
else cout<<"not an acid"; //不