private string CountingResult(string acid, string oxide)
    {
        if (oxide == "Cl2O7")
        {
            return("X");
        }
        else
        {
            string metalIon = pattern.TransFormOxideToMetalIon(oxide);
            string acidIon  = pattern.TransformToAcidReduceIon(acid);

            if (oxidationDegree1.Contains(metalIon) && oxidationDegree1.Contains(acidIon) ||
                oxidationDegree2.Contains(metalIon) && oxidationDegree2.Contains(acidIon) ||
                oxidationDegree3.Contains(metalIon) && oxidationDegree3.Contains(acidIon))
            {
                return(metalIon + acidIon);
            }

            if (oxidationDegree2.Contains(metalIon) && oxidationDegree1.Contains(acidIon))
            {
                if (acidIon == "I" || acidIon == "Cl" || acidIon == "Br" || acidIon == "F")
                {
                    return(metalIon + acidIon + "2");
                }
                else
                {
                    return(metalIon + "(" + acidIon + ")2");
                }
            }

            if (oxidationDegree1.Contains(metalIon) && oxidationDegree2.Contains(acidIon))
            {
                return(metalIon + "2" + acidIon);
            }

            if (oxidationDegree3.Contains(metalIon) && oxidationDegree1.Contains(acidIon))
            {
                if (acidIon == "I" || acidIon == "Cl" || acidIon == "Br" || acidIon == "F" || acidIon == "S")
                {
                    return(metalIon + acidIon + "3");
                }
                else
                {
                    return(metalIon + "(" + acidIon + ")3");
                }
            }

            if (oxidationDegree1.Contains(metalIon) && oxidationDegree3.Contains(acidIon))
            {
                return(metalIon + "3" + acidIon);
            }

            if (oxidationDegree3.Contains(metalIon) && oxidationDegree2.Contains(acidIon))
            {
                if (acidIon == "I" || acidIon == "Cl" || acidIon == "Br" || acidIon == "F" || acidIon == "S")
                {
                    return(metalIon + "2" + acidIon + "3");
                }
                else
                {
                    return(metalIon + "2(" + acidIon + ")3");
                }
            }

            if (oxidationDegree2.Contains(metalIon) && oxidationDegree3.Contains(acidIon))
            {
                if (acidIon == "I" || acidIon == "Cl" || acidIon == "Br" || acidIon == "F" || acidIon == "S")
                {
                    return(metalIon + "3" + acidIon + "2");
                }
                else
                {
                    return(metalIon + "3(" + acidIon + ")2");
                }
            }
            return("X");
        }
    }