अधिकांश टिप कैलकुलेटर ऐप केवल भोजन की कीमत का एक फ्लैट प्रतिशत लेते हैं। इसलिए, उदाहरण के लिए, यदि आपका भोजन $ 23.45 है, तो आप 15% टिप = $ 3.52, या अधिक उदार 20% टिप = $ 4.69 छोड़ सकते हैं।
क्रेडिट कार्ड उपयोगकर्ताओं के लिए पर्याप्त सुविधाजनक है। लेकिन ऐसा नहीं है यदि आप नकद युक्तियां छोड़ना पसंद करते हैं, तो जिस स्थिति में ये विषम मात्रा में राशि मिलती है। तो आइए नकद उपयोगकर्ताओं के लिए अधिक सुविधाजनक होने के लिए विचार को संशोधित करें।
आपका काम
जितना संभव हो, उतने बाइट्स में लिखें, एक प्रोग्राम या फंक्शन जो इनपुट के रूप में लेता है:
- भोजन का मूल्य
- न्यूनतम टिप प्रतिशत
- अधिकतम टिप प्रतिशत
और सीमा के भीतर किसी भी टिप राशि का उत्पादन करें [कीमत * min_percentage / 100, कीमत * max_percentage / 100] जो बिल / बैंकनोट और सिक्कों की संख्या को न्यूनतम करता है।
1 5, 5 10, 10 US, 25 ¢, $ 1, $ 5, $ 5, $ 10, $ 20, $ 50 और $ 100 के अमेरिकी मौद्रिक संप्रदायों को मान लें।
उदाहरण
यहां पायथन में एक गैर-गोल्फ उदाहरण कार्यक्रम है:
import math
import sys
# Do the math in cents so we can use integer arithmetic
DENOMINATIONS = [10000, 5000, 2000, 1000, 500, 100, 25, 10, 5, 1]
def count_bills_and_coins(amount_cents):
# Use the Greedy method, which works on this set of denominations.
result = 0
for denomination in DENOMINATIONS:
num_coins, amount_cents = divmod(amount_cents, denomination)
result += num_coins
return result
def optimize_tip(meal_price, min_tip_percent, max_tip_percent):
min_tip_cents = int(math.ceil(meal_price * min_tip_percent))
max_tip_cents = int(math.floor(meal_price * max_tip_percent))
best_tip_cents = None
best_coins = float('inf')
for tip_cents in range(min_tip_cents, max_tip_cents + 1):
num_coins = count_bills_and_coins(tip_cents)
if num_coins < best_coins:
best_tip_cents = tip_cents
best_coins = num_coins
return best_tip_cents / 100.0
# Get inputs from command-line
meal_price = float(sys.argv[1])
min_tip_percent = float(sys.argv[2])
max_tip_percent = float(sys.argv[3])
print('{:.2f}'.format(optimize_tip(meal_price, min_tip_percent, max_tip_percent)))
कुछ नमूना इनपुट और आउटपुट:
~$ python tipcalc.py 23.45 15 20
4.00
~$ python tipcalc.py 23.45 15 17
3.55
~$ python tipcalc.py 59.99 15 25
10.00
~$ python tipcalc.py 8.00 13 20
1.05
a program that takes as input (stdin, command-line arguments, or GUI input box, whichever is most convenient in your language)क्या यह इनपुट और आउटपुट के लिए हमारी चूक को खत्म करने का इरादा है? वह है, उदाहरण के लिए एक फ़ंक्शन जो तीन नंबर लेता है और परिणाम देता है उसे अनुमति दी जाती है?
3.51और 3.75भी परीक्षण का मामला के लिए मान्य outputs हैं 23.45 15 17? वे समान मात्रा में सिक्कों का उपयोग करते हैं और सीमा के अंदर भी होते हैं।