سورس خرد کردن پول در طراحی الگوریتم ها
طراحی الگوریتم ها
دانلود رایگان سورس خرد کردن پول
هدف فروشنده یک فروشگاه دادن بقیه پول به میزان صحیح و با حداقل تعداد سکه ممکن است. ابتدا فروشنده بزرگترین سکه از لحاظ ارزش را پیدا می کند، یعنی ملاک وی ارزش سکه است(روال انتخاب). سپس باید ببیند که آیا با افزودن این سکه به بقیه پول، جمع کل آنها از چیزی که باید باشد بیشتر می شود یا خیر(امکان سنجی). اگر با افزودن این سکه، بقیه پول از میزان لازم بیشتر نشود، این سکه به مجموعه افزوده می شود
سپس تحقیق می کند تا ببیند که آیا مقدار بقیه پول با میزان لازم برابر شده یا خیر( بررسی راه حل). اگر برابر نقود، با استفاده از روال انتخاب یک سکه دیگر انتخاب می کند و فرایند تکرار می شود. او چندین بار این کار را انجام می دهد که مقدار بقیه پول با میزان لازم برابر شود یا اینکه دیگر سکه ای برایش باقی نماند که در این حالت قادر به بازگرداندن مقدار بقیه پول نیست.
مثال
اگر سکه های آمریکایی( ۱سنتی، ۵سنتی، ۱۰سنتی، ۲۵سنتی و نیم دلاری) باشند و اگر از هر کدام حداقل یک عدد موجود باشد، آیا الگوریتم حریصانه همواره در صورت وجود حل بهینه را برمی گرداند؟ بله- به طور نمونه برگرداندن ۳۶سنت به مشتری:
-۱دادن یک سکه ۲۵سنتی
-۲دادن یک سکه ۱۰سنتی
-۳دادن یک سکه ۱۰سنتی دیگر (ولی چون از ۳۶سنت بیشتر می شود، این سکه پس گرفته می شود.)
-۴دادن یک سکه ۵سنتی (ولی چون از ۳۶سنت بیشتر می شود، این سکه پس گرفته می شود.)
-۵دادن یک سکه ۱سنتی
بنابراین در کل یک سکه ۲۵سنتی، یک سکه ۱۰سنتی و یک سکه ۱سنتی به مشتری داده شد.
در ادامه سورس مساله خرد کردن پول با استفاده از زبان برنامه نویسی ++c آورده شده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
//http://donyafile.ir #include <iostream> #include <conio.h> using namespace std; int main() { int sekeh[6]={1,2,5,10,25,50}; int backsekeh[10]={0}; int money=0,price=0; int sum=0; int i=0,n=0; cout<<"\n\t Enter Your Money:"; cin>>money; // 77 cout<<"\n\t Enter Your Price:"; cin>>price; // 14 cout<<"\n\t The Value of back mony: "<<money-price; //77-14=63 int back=money-price; int backmoney=money-price; for(i=5;i>=0;i-- ) { if(sekeh[i]> backmoney) continue; else { backsekeh[n]=sekeh[i]; n++; sum=sum+sekeh[i]; backmoney=back-sum; i++; if(backmoney==0) break; } } cout<<"\n\n \t Number of sekeh to back: "; for(int i=0;i<n;i++) cout<<backsekeh[i]<<"\t"; getch(); return 0; } |
Download دانلود سورس کد خرد کردن سکه در طراحی الگوریتم |
مطالب مرتبط
فرستادن دیدگاه
نوشتههای تازه
- دانلود پیاده سازی رمزنگاری اثر انگشت
- دانلود پیاده سازی مقاله رمزنگاری چندگانه تصویر بر اساس جایگشت عناصر تصویر در متلب
- دانلود ترجمه مقاله رمزنگاری تصویر رنگی مبتنی بر سیستم فوق آشوب
- دانلود پیاده سازی مقاله رمزنگاری تصویر مبتنی بر دنباله های DNA و چندین نگاشت آشوب یک بعدی بهبود یافته در متلب
- رمزنگاری تصویر رنگی مبتنی بر ترکیب سیستم آشوب و دنباله های DNA
- دانلود ترجمه مقاله الگوریتم رمزنگاری تصویر مبتنی بر آشوب با استفاده از عملیات دنباله DNA
- دانلود ترجمه مقاله یک روش جدید رمزنگاری تصویر مبتنی بر اغتشاش و انتشار با استفاده از اتوماتای سلولی و دنباله DNA
- پیاده سازی مقاله رمزنگاری تصویر رنگی مبتنی بر سیستم های فوق آشوب و اتوماتی سلولی
- پیاده سازی مقاله رمزنگاری تصویر مبتنی بر دنباله های DNA و توابع آشوب
- دانلود سورس پیاده سازی مقاله رمزنگاری تصویر رنگی مبتنی بر عملگر های DNA و سیستم فوق آشوب