سوال ACM غزب آسیا دانشگاه شریف
سلام دوستان
یک برنامه نوشتم که دیدم جالبه در موردش بحث کنیم . این سوال مسابقات ACM غرب آسیاست .
کاربر به شما دو عدد تک رقمی می دهد که اولی رقم یکان یک عدد نا معلو م و دومی یک عدد تک رقمی است .
حالا برنامه شما باید یک عدد int پیدا کند که رقم یکانش آن عدد اول باشد و هنگامی که در عدد تک رقمی دوم ضرب می شود رقم یکان به آخر عدد منتقل شود و اگر پیدا نکرد صفر برگرداند .
مثال : عدد اول به عنوان رقم یکان : 5 / ********* / عدد دوم به عنوان ضریب : 4
عددی که برنامه بر می گرداند : 128205 / ******** / زیرا : 512820 = 4 * 128205
* در موردش فکر کنید ولی فکر نکنید باید همه اعداد رو چک کرد *
نقل قول: سوال ACM غزب آسیا دانشگاه شریف
می دونم این تاپیک قدیمی هست ولی راه حل من برای مسئله ی اول رو ببینید:
رقم یکان = m
ضریب = n
1-
اولین عدد بخشپذیر بر n با دهگان m را پیدا می کنیم p=
(حداکثر به 10 مقایسه نیاز داریم.)
2-
q = n * m
3-
y هم تعداد ارقام q است
4-
z =[ ( p * 10^y ) + q ]/n
z همان عدد است.
مثلا:
ورودی :
5
4
P=52
Q=20
Z = [ 52*100 + 20 ] / 4 = 1305
به نظر شما این روش درست هست؟ به نظر خودم خیلی ساده حل شد !
جالب این است که در این روش می توان عدد حاصل با هر تعداد رقم تولید کرد.
نقل قول: سوال ACM غزب آسیا دانشگاه شریف
بنظر من اینجوری فایده نداره (حال نمیده ) بیاید سوالا رو مطرح کنید بعد زمان بزارید در آخر همه جوابا رو آپ کنن یعنی یجور مسابقه