• 题解 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;
    }
    
  • 相关阅读:
    怎么能忘了N皇后(N Queens)?
    中序线索二叉树及相关算法概述(java实现)
    树遍历算法概述
    广义表与字符串
    KMP算法简述
    Linux常用系统符号总结
    linux 父、子shell变量传递问题
    数据结构总结之一栈与队列
    n!素因子p的幂 swjtuOJ 2090【数论】
    N!分解素因子及若干问题【转载】
  • 原文地址:https://www.cnblogs.com/tearing/p/12371881.html
Copyright © 2020-2023  润新知