PDA

View Full Version : حرفه ای: حل یک الگوریتم



Ali_M.Eghbaldar
دوشنبه 11 مرداد 1389, 17:16 عصر
سلام به همه
می خواستم یه اگوریتم برای حالت زیر پیدا کنم

1,2,3,4,5 ====> 0
6,7,8,9,10 =====> 5
11,12,13,14,15 =====> 10
.......

و الی آخر یعنی اگه به من عدد 8 را دادن اگوریتم مقدار 5 را برگردانند و مثلا اگر 12 دادن 10 ولی آخر

ممنون :لبخندساده:

vb8334
دوشنبه 11 مرداد 1389, 21:24 عصر
سلام

من دقیقا منظورتون رو متوجه نشدم

منطورتون اینه که عددی که کاربر مثلآ 8 رو میزنه تا 5 برگرد عقب 5 عدد ثابته


بیشتر توضیح بده

armiya
دوشنبه 11 مرداد 1389, 21:56 عصر
پاسخ سوال :
عدد ورودی رو بگیر n بعد عدد رو به دو دسته اونایی که بر 5 بخش پذیرند و اونایی که نیستند تقسیم کن برا اونایی که نیستن داریم n=5k+x برابر n میشه اونوقت جوابت میشه 5k ولی اونایی که به 5 بخش پذیرند n=5k که جوابش میشه
5(k-1) این میشه جوابش ؟؟
خوب ببین عدد 13 خوب میشه 2*(5)+3 که میشه 13 درست الان k=2 درستt میشه 3 بنا براین میشه 15 برا 15 خودت مثال بزن در می اید

Ali_M.Eghbaldar
سه شنبه 12 مرداد 1389, 09:27 صبح
دوست من armiya واقعا از جوابت ممنونم :قلب: (http://barnamenevis.org/forum/member.php?u=59635)
ولی واقعا" متوجه نشدم . الان فرمول اصلیت چیه؟:لبخندساده:
= = = = = = = = = = = = = = = = = = = = = = =
راستش من خودم با مشورتم یکی از دوستام (حق کپی رایت رعایت بشه :بامزه:)
اینطوری حل شد:
هر عددی که به ما بدهند مثل n ابتدا بررسی می کنیم اگر بخشپذیر به 5 بود 5 واحد از خودش کم می کنه
مثل 5 که جواب 0 است
مثل 10 که جواب و الی آخر ....
ولی اگر به 5 بخشپذیر نبود یک واحد یک واحد به آن اضافه می کنیم تا به عددی برسیم که به 5 بخشپذیر بشود آنگاه دوباره 5 واحد از آن کم می کنیم
مثال:
اگر عدد 13 را داشته باشیم
13+1=14
دوباره
14+1=15
حال 15-5=10 که جواب ماست
اگوریتمی که استفاده کردم بصورت زیر است :


b = Not b
While (b)
Count += 1
If Count Mod 5 = 0 Then
Start = Count - 5
Fill()
b = False
End If
End While

ولی دوست جواب شمارو داشته باشم
ممنون

S.Reza
سه شنبه 12 مرداد 1389, 12:39 عصر
پیچیدش نکن ساده بنویس :لبخندساده:




int n;
for (int x = 5; x > 0; x-- , n--)
{
if (n % 5 == 0)
{
printf("%d", n);
}
}

armiya
سه شنبه 12 مرداد 1389, 12:45 عصر
فرض کن عدد ورودی 25 باش خوب 25 به 5 بخش پذبره درسته پس از فرمول : 5k
یهنی ببین چه عددی k در 5 ضرب بشه میشه 25 جواب 5 درسته خواب از این k یکی کم کن ؟؟؟؟که میشه جوابت
حالا 17 ببین چه عددی ضربدر x بشه به اضافه یه چیز دیگه میشه 17 خوب 3*5 به اضافه 2 میشه 17 درسته
جواب میشه 5*3
--------------------------------------------------------------------------
در ضمن for بالا هم راحت حل شده

nima898
چهارشنبه 13 مرداد 1389, 08:38 صبح
خیلی ساده تر هم میشه نوشت:
n : ورودی
p : خروجی
p برابر با 5 ضربدر باقیمانده تقسیم (n-1) بر 5
به عبارت دیگه:

p = 5 * ((n - 1) mod 5)