题解 AT859 【元素の系統名】

题目传送门

介绍一种使用string字符串的方法。

(string)(C++)(java)(VB)等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 (C++)标准库中(string)类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。——百度百科

思路:

  1. 初步想法:
    我们可以定义一个字符串,然后逐位输出对应的原子序数。

  2. 定义一个字符串s,并输入。

	string s;
	cin>>s;
  1. 按照百位->十位->个位的顺序进行判断&输出:先判断百位并输出。
	if(s[0]=='0')cout<<"Nil";
	if(s[0]=='1')cout<<"Un"; 
	if(s[0]=='2')cout<<"Bi";
	if(s[0]=='3')cout<<"Tri";
	if(s[0]=='4')cout<<"Quad";
	if(s[0]=='5')cout<<"Pent";
	if(s[0]=='6')cout<<"Hex";
	if(s[0]=='7')cout<<"Sept";
	if(s[0]=='8')cout<<"Oct";
	if(s[0]=='9')cout<<"Enn";
  1. 判断十位并输出。注意,这里有一些坑点需要注意。
	if(s[1]=='0' && s[0]!='9')cout<<"nil";
	if(s[1]=='0' && s[0]=='9')cout<<"il";
	if(s[1]=='1')cout<<"un";
	if(s[1]=='2')cout<<"bi";
	if(s[1]=='3')cout<<"tri";
	if(s[1]=='4')cout<<"quad";
	if(s[1]=='5')cout<<"pent";
	if(s[1]=='6')cout<<"hex";
	if(s[1]=='7')cout<<"sept";
	if(s[1]=='8')cout<<"oct";
	if(s[1]=='9')cout<<"enn";
  1. 最后判断个位并输出。
	if(s[2]=='0' && s[1]!='9')cout<<"nil";
	if(s[2]=='0' && s[1]=='9')cout<<"il";
	if(s[2]=='1')cout<<"un";
	if(s[2]=='2')cout<<"bi";
	if(s[2]=='3')cout<<"tri";
	if(s[2]=='4')cout<<"quad";
	if(s[2]=='5')cout<<"pent";
	if(s[2]=='6')cout<<"hex";
	if(s[2]=='7')cout<<"sept";
	if(s[2]=='8')cout<<"oct";
	if(s[2]=='9')cout<<"enn";
  1. 输出最后的词尾。这里需要特判一下。
	if(s[2]=='2' || s[2]=='3')cout<<"um";
	else cout<<"ium";

代码实现:

#include <bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	cin>>s;
	//--------百位--------
	if(s[0]=='0')cout<<"Nil";
	if(s[0]=='1')cout<<"Un"; 
	if(s[0]=='2')cout<<"Bi";
	if(s[0]=='3')cout<<"Tri";
	if(s[0]=='4')cout<<"Quad";
	if(s[0]=='5')cout<<"Pent";
	if(s[0]=='6')cout<<"Hex";
	if(s[0]=='7')cout<<"Sept";
	if(s[0]=='8')cout<<"Oct";
	if(s[0]=='9')cout<<"Enn";
	//--------十位--------
	if(s[1]=='0' && s[0]!='9')cout<<"nil";
	if(s[1]=='0' && s[0]=='9')cout<<"il";
	if(s[1]=='1')cout<<"un";
	if(s[1]=='2')cout<<"bi";
	if(s[1]=='3')cout<<"tri";
	if(s[1]=='4')cout<<"quad";
	if(s[1]=='5')cout<<"pent";
	if(s[1]=='6')cout<<"hex";
	if(s[1]=='7')cout<<"sept";
	if(s[1]=='8')cout<<"oct";
	if(s[1]=='9')cout<<"enn";
	//--------个位--------
	if(s[2]=='0' && s[1]!='9')cout<<"nil";
	if(s[2]=='0' && s[1]=='9')cout<<"il";
	if(s[2]=='1')cout<<"un";
	if(s[2]=='2')cout<<"bi";
	if(s[2]=='3')cout<<"tri";
	if(s[2]=='4')cout<<"quad";
	if(s[2]=='5')cout<<"pent";
	if(s[2]=='6')cout<<"hex";
	if(s[2]=='7')cout<<"sept";
	if(s[2]=='8')cout<<"oct";
	if(s[2]=='9')cout<<"enn";
	//--------尾数--------
	if(s[2]=='2' || s[2]=='3')cout<<"um";
	else cout<<"ium";
	return 0;
}
原文地址:https://www.cnblogs.com/tearing/p/12371881.html