2012-11-12 64 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年最近一次使用++ ..

無論我提到的是一種算法/邏輯檢測..不完美的代碼