# قطعة دمكمان من الشفرة... مجنرات أو معدنية للأرقام (th,th,th,th,th, et...)

<datetime class="hidden">2004-07-03T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported -->
تحديث: رمزي أدناه بالطبع له خطأ (كتبته لاختبار المهارات الإدراكية للمجتمع ؛-) على أي حال، علّق فيليب ريك مع نسخة أكثر مصداقية:

رهاني هو أنك مررت به مرة أخرى بعد أن نسيته لأنك رميته بعيداً. سوف تعيد النتيجة الخاطئة لمدخلات مثل "42" و"123" و"101" وما إلى ذلك. لقد فعلت ذلك كثيراً - لقد حفظت الرمز لسبب ما حتى عندما يكون غير صحيح (مثل، البائع الذي زوده بالرمز، أو لديه بعض الخدع فيه)، ثم بعد سنة أجده وأختبره مرة أخرى لأنني لم أسجل لماذا أنقذته. طريقة غير مجدية لإنقاذ الأشياء، لكن لدي القليل من العادات السيئة.

هذه واحدة أستخدمها كثيراً (حسناً، نوعاً ما - إنها من أعلى الرأس، لا مجمّع هنا)

خاص خاص خاص س سلسلة سلسلة سلسلة سلسلة سلسلة
{
(أ) مكان وجوده في مكان وجوده = عدده: 10؛
(المكان) &gt; 3/العودة "th"؛

// حالة خاصة للمراهقات
(أ) العدد: 100؛
إذا كان الأمر كذلك &lt; & & & & & & & مُنْسِل &gt; 10)
{
(أ) "th"؛
}
إذا (المكان) report "st" (المكان)
(أ) إذا (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان) (المكان)) (المكان) (المكان) (المكان) (المكان)
(أ) إذا (المكان) أو (المكان) أو (الرد)؛
(أ) "th"؛

حسناً، ليست أكثر قطعة من الرموز تعقيداً على هذا الكوكب، صادفتها عند إعادة تركيب آلتي المكسورة. إنها تصيبني كشيء ربما بناه الإطار، لكنني لم أستطع تحديد موقعه... على أية حال، نظراً للرقم الصحيح، هذه القصاصة سترجع سلسلة مع الأوردينية الصحيحة.

```
THIS CODE IS INCORRECT! Retained for amusement purposes only :0(
```

```
public class OrdinalNumber
    {
        public static string  GetOrdinal(int Number) 
        {
        
            try
            {
                string numStr = Number.ToString();
                // Accepts an integer, returns the ordinal suffix
                //  special case three digit numbers ending
                // with 11, 12 or 13 - ie, 111th, 112th, 113th, 211th, et al
                if (numStr.Length > 2 ) 
                {
                    int intEndNum = Convert.ToInt32(numStr.Substring(numStr.Length - 2, 2));
                    if ( intEndNum >= 11 && intEndNum <= 13 ) return "th";
                        
                }
                if ( Number >= 21 && Number <=23) 
                {
                    //  21st, 22nd, 23rd, et al
                    switch (Convert.ToInt32(numStr.Substring(numStr.Length - 1, 1))) 
                    {
                        case 1: return "st";
                        case 2: return "nd";
                        case 3:    return "rd";
                        default: return "th";
                    }
                } 
                else if(Number >=1 && Number <=3)
                {
                    //  1st to 20th
                    switch (Number) 
                    {
                        case 1: return "st";
                        case 2:    return "nd";
                        case 3:    return "rd";
                        default: return "th";
                    }
                }
                else
                {
                    return "th";
                }
            }
            catch(Exception)
            {
                return string.Empty;
            }
        }
    }
```