2012-11-12 36 views
0

我需要一个带有两位数字的程序,例如“22”并返回“Twenty Two”。我有以下开始为主要方法,但什么都没有的字符串的方法两位数字

 static string TwoDigit(int n) 
    { 

    } 
    static void Main(string[] args) 
    { 
     for (int i = 0; i <= 19; i++) 
      Console.WriteLine("{0}: {1}", i, TwoDigit(i)); 
     for (int i = 20; i <= 110; i += 7) 
      Console.WriteLine("{0}: {1}", i, TwoDigit(i)); 
    } 
+0

哇,我记得这个算法在大学的日子。我创建了一个冗长的代码吧..然后.. atlast我有一个解决方案第二天... – Rafee

回答

2

我不知道现有的程序,但它会很容易写的功能。
我会将int转换为字符串,然后在每个字符上执行switch语句。
第一个开关将处理“Twenty”,“Thirty”等。
第二个开关将处理一个,两个,三个等。
您需要为正在吐出的青少年设置一个特殊情况每个单词。

0

只需花时间在您的研究。如果你不知道如何去做,我建议通过一个数字解析整数,然后通过大小写格式化文本。

switch (int) 
case 1: 
cout << "one"; 
switch (int) 
case 2: 
cout << "two"; 
0

最简单的方法是单独评估两个数字并将它们匹配到存储在两个数组中的字符串值。

因此,例如,你可能有这两个数组...

tens[0] = "" 
tens[1] = "" 
tens[2] = "Twenty" 
tens[3] = "Thirty" 
tens[4] = "Forty" 
tens[5] = "Fifty" 
tens[6] = "Sixty" 

等等

ones[0] = "" 
ones[1] = "One" 
ones[2] = "Two" 
ones[3] = "Three" 

等等

然后如果该号码> = 20,你可以简单地把第一位数字作为十位数组的索引,并将第二位数字用作你的数组的索引。如果数字在10到19之间,则需要一些特殊的逻辑来处理它。

+0

您需要为'teens'创建任何数组列表 – Rafee

+0

是的,就像我所说的,10到19之间的任何东西都需要单独的逻辑。可以将它们存储在单独的数组中,或者只需使用switch语句,无论您想要什么。 – Jim

0
  1. 初始化此功能

    function Ones_String(number1) { 
    
        if (number1 == 1) { 
         string1 = "One"; 
        } elseif (number2 == 9) { 
         string1 = "Nine"; 
        } elseif (number2 == 10) { 
         string1 = "Ten"; 
        } elseif (number2 == 0) { 
         string1 = "Zero"; 
        } else { 
         string1 = ""; // empty value 
        } 
    
        return string1; 
    } 
    
    
    function Tens_String(number2) { 
    
        if (number2 == 2) { 
         string2 = "Twenty"; 
        } elseif (number2 == 3) { 
         string2 = "Thirty"; 
        } elseif (number2 == 9) { 
         string2 = "Ninety"; 
        } else { 
         string2 = ""; // emtpy value 
    
        } 
        return string2; 
    } 
    
    
    
    function teens_string(number3) { 
    
        if (number3 == 11) { 
         string3 = "Eleven"; 
        } elseif (number3 == 12) { 
         string3 = "Tweleve"; 
        } else { 
         string3 = "Nineteen"; 
        } 
    
        return string3; 
    } 
    

如果给定数量< 11然后调用Ones_string()

如果是数> = 11然后执行以下逻辑

  1. 第一:得到的秒数位的值,并调用Tens_String();

  2. 二:拿到第一个数字vallue并调用Ones_string();

该算法适用直到99 ..在大学基于C在2006年最近一次使用++ ..

无论我提到的是一种算法/逻辑检测..不完美的代码