مشکل در حل تمرین c# تحت کنسول

Allahparast

Member
یه برنامه میخوام که تعداد اعداد کوچکتر از 1ميليون که فقط دو رقم از ارقام آن 5 باشدرا به دست آورده و در خروجي چاپ کنه ، دوستان خواهشا کمک کنند وقتم کمه ممنون :rose:
 

the_king

مدیرکل انجمن
یه برنامه میخوام که تعداد اعداد کوچکتر از 1ميليون که فقط دو رقم از ارقام آن 5 باشدرا به دست آورده و در خروجي چاپ کنه ، دوستان خواهشا کمک کنند وقتم کمه ممنون :rose:

برنامه زیر تعداد ارقام 5 رو در دونه دونه اعداد 0 الی 999999 می شماره :
کد:
        static void Main(string[] args)
        {
            int m = 0;
            for (int n = 0; n < 1000000; n++)
            {
                int x = n, j = 0;
                while ((x > 0) && (j < 3))
                {
                    if (x % 10 == 5)
                        j++;
                    x /= 10;
                };
                if (j == 2)
                    m++;
            }
            Console.WriteLine(m);
            Console.ReadKey(true);
        }

اما بدست آوردن اش می تونه به روش مباحث آمار و احتمالات هم انجام بشه :
کد:
m = 9^4 * ((6 * 5) / 2)
9 به توان 4 تعداد ارقام چهار رقمی ای است که هیچ رقم 5 ای در آنها نباشد (هر رقم شان یکی از حالت
0,1,2,3,4,6,7,8,9 باشد که جمعا 9 حالت است)
6 * 5 تعداد حالت هایی است که دو رقم در یک صف 6 تایی می توانند قرار بگیرند.
حاصل بر 2 تقسیم شده چون دو رقم 5 مشابه هم هستند و اگر جایشان عوض شود عدد تغییری نمی کند.

برنامه زیر همان تعداد اعداد را با فرمول احتمالات خیلی ساده و سریع محاسبه می کند :
کد:
        static void Main(string[] args)
        {
            Console.WriteLine(Math.Pow(9, 4) * (6 * 5) / 2);
            Console.ReadKey(true);
        }
 

farik

Well-Known Member
باسلام..
سلام اللهیار جان..بالخره پس c# رو شروع کردی..موفق باشی..خوب راستش من C# طرز کدنویسیش یادم رفته ولی الگوریتمش رو میگم..اگه خواستی به C هم مینویسم برات..
خوب اول یک تابع مینویسی که تا وقتی که عدد بزرگتر باشه از 0 یا i کمتر از 2 بود.عدد رو هر بار به 10 تقسیم کنه و اگه باقیماندش بر 10 5 بود به i یکی اضافه کنه..بعد هم میزنی اگه i بزرگتر از 2 بود عدد رو چاپ کنه ورگنه هم هیچی...
بعد تو یک حلقه واسه تگ تگ عددهات این رو اجرا میکنی..
ببخشید واقعا باید یک نگاهی به کدهای قدیمم بندازم وگرنه فعلا هیچی از نحوه چاپ و ... یادم نیست..
موفق باشی..
 

جدیدترین ارسال ها

بالا