একটি টিপ গণনা করুন


16

আপনি এবং একটি বন্ধু একটি বারে পদচারণা। বারটেন্ডার আপনার সাথে ভাল ব্যবহার করে, তাই আপনি তাকে টিপ দেওয়ার সিদ্ধান্ত নিলেন। সুতরাং আপনি আপনার বিশ্বস্ত পকেট কম্পিউটারটি বের করেন এবং ক্যালকুলেটরটিতে কোনও বিল্ট নেই বলে আপনার জন্য একটি টিপ গণনা করার জন্য একটি দ্রুত প্রোগ্রাম লিখুন। কিন্তু অপেক্ষা করো! আপনার অপারেটরের কীগুলি ভেঙে গেছে! আপনার কাজটি কোনও প্রদত্ত ইনপুট পরিমাণের জন্য 20% টিপ গণনা করা। পরীক্ষার ইনপুটগুলি xx.xx আকারে হবে 20.96। এখানে বিধি রয়েছে:

  • গাণিতিক ফর্ম অপারেটরগুলিতে নিম্নলিখিতগুলির কোনও ব্যবহার নেই: + - * / %(ধন্যবাদ ওয়ালি ওয়েস্ট)
  • শতাংশ ফাংশন বা এপিআই-তে অন্তর্নির্মিত ব্যবহার নেই
  • নেটওয়ার্ক অ্যাক্সেস নেই
  • ব্যবহার evalবা অনুরূপ
  • কোনও উইন্ডোজ ক্যালকুলেটর নেই (হ্যাঁ লোকেরা এর সাথে ইতিমধ্যে উত্তর দিয়েছে)
  • কোনও টিপ ফাংশনে অন্তর্নির্মিত নয় (কোনও ভাষার একটিরই এমন হবে না)

আউটপুট দুটি দশমিক জায়গায় গোল করা উচিত।

স্কোরগুলি বাইটের দৈর্ঘ্যের উপর ভিত্তি করে।

-20% যদি আপনার প্রোগ্রামটি কোনও টিপ পরিমাণ গ্রহণ করতে পারে। পরিমাণের জন্য ইনপুটটি xx আকারে দেওয়া হবে উদাহরণস্বরূপ 35 নয় 0.35


5
@ এমনিআইপি: একটি টিপ হ'ল এমন একটি উদ্ভট অতিরিক্ত পরিমাণ অর্থ যা আপনি কোনও রেস্তোরাঁয় যে অফিশিয়াল দামের অংশ না হন তা প্রত্যাশা করা হয়। আমি জানি না তারা রাশিয়ায় এটি করে কিনা।
ব্যবহারকারী 2357112

5
ওহ, এই নতুন প্রজন্ম ... আমি মানসিকভাবে 5 দ্বারা কোনও সংখ্যাকে বিভক্ত করতে না পারলে আমি কাগজ এবং কলম ব্যবহার করব
ভিজিওএন

4
@ ভিজিওএন নোট: পাঁচ দ্বারা বিভাজক করা 10 দ্বারা বিভক্ত হওয়ার সমান এবং তারপর 2 দ্বারা গুণিত করা এবং উভয়ই খুব সহজ মানসিক ক্রিয়াকলাপ হওয়া উচিত।
ব্যবহারকারী 12205

1
কেউ কি বিধিগুলি পরিষ্কার করতে পারেন: আপনি যদি এই অপারেটরগুলি ব্যবহার না করেন তবে কি নিষিদ্ধ ক্রিয়াকলাপগুলি ব্যবহারের অনুমতি রয়েছে? আপনি যদি ব্যবহার না করেন তবে কি গুণের অনুমতি রয়েছে *?
Ypnypn

2
@ ডক্টর যদিও এটি আসলে একটি সদৃশ? কারণ এটি যুক্ত হচ্ছে না।
মিলো

উত্তর:


18

জাভাস্ক্রিপ্ট ৮১

সম্পাদনা : ফলাফলটি এখন একটি বাস্তব বৃত্তাকার, কাটা না।

এখানে কোনও গণিত ব্যবহার করবেন না , কেবল স্ট্রিং ম্যানিপুলেশন এবং বিটওয়াইস অপারেটরগুলি।
সমস্ত +চর স্ট্রিং সংমিশ্রণ, বা স্ট্রিং থেকে ফ্লোট রূপান্তর।
Xx.xx ইনপুট এবং (x) x.xx ফর্ম্যাটে আউটপুটগুলির জন্য কাজ করে

s='00'+(prompt().replace('.','')<<1);(+s.replace(/(.*)(...)/,'$1.$2')).toFixed(2)

ট্রিক ব্যাখ্যা করেছেন: 20% 10 দ্বারা বিভক্ত হয় এবং 2 দ্বারা গুণিত হয়।

  • বাম দিকে বিন্দুটি সরানোর মাধ্যমে 10 দ্বারা বিভাজন করুন (স্ট্রিং ম্যানিপুলেশন)
  • বামে বিটগুলি সরিয়ে প্রতিটি অংশকে 2 দিয়ে গুণ করুন (বিটওয়াইজ অপারেশন)

যখন ইনপুট হয় 99.99, এটি ফিরে আসে 19.998, সুতরাং এটি ওপি অনুসারে "দুটি দশমিক স্থানে গোল হয়"।
জিওবিটস

2
উম্মু এটি একটি দীর্ঘ সমাধান, তবে এটিতে 12 টি upvotes রয়েছে। কোড-গল্ফের ভোট দিয়ে কী চলছে?
জাস্টিন

@ কুইনকুনস হ্যাঁ আপনি ঠিকই এর জনপ্রিয়তা নয় প্রতিযোগিতা!
মুকুল কুমার

যেহেতু এটি একটি কোড-গল্ফ, আমি সম্ভবত জিততে পারব না, তবে এর অর্থ এই নয় যে লোকেরা আমার সমাধান পছন্দ করতে পারে না ... প্রায়শই, কোড-গল্ফ বিজয়ীরা সর্বাধিক উন্নতির সাথে থাকে না।
মাইকেল এম।

@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳, নিখুঁতভাবে! এটি নির্দেশ করার জন্য আপনাকে ধন্যবাদ। এখনই স্থির করা হয়েছে :)
মাইকেল এম 12

6

জে (9 টি অক্ষর)

জেতে একটি সংক্ষিপ্ত উত্তর:

^.(^.2)^~ 32

1
... এবং আমি জে কথা বলি না এটা কী বলে?
মামাতো ভাই কোকেন

এটি বলে: বিদ্যুত লগতে উত্থিত 32 গণনা (2); সাধারণত, ঘটনাকারীর ডানদিকে থাকে ^তবে এখানে ~নির্দেশ রয়েছে যে ক্রমটি বিপরীত হওয়া উচিত; (^.2)হ'ল লগ (.2), ​​এবং যেটি প্রাথমিকভাবে ^.শেষ করা হয় তা হ'ল গণনাটির লগারিদম স্পষ্টত: এইভাবে লগ (32 ^ লগ (.2))
থমাস বারুচেল

4

খাঁটি বাশ, 50 43 অক্ষর

খুব নিশ্চিত যে এটি পরাজিত হবে তবে এখানে একটি শুরু:

a=$[10#${1/.}<<1]
echo ${a%???}.${a: -3:2}

মতামত অনুসারে:

  • / এটি কোনও বিভাগ অপারেটর নয়, এটি একটি প্যাটার্ন বিকল্পের অংশ প্যারামিটার বিস্তারের অংশ
  • % এখানে কোনও মডুলো অপারেটর নয়, এটি প্যারামিটার বিস্তারের অংশ
  • - এখানে বিয়োগফল অপারেটর নয়, এটি একটি প্রত্যাখ্যান, যা মন্তব্য অনুসারে অনুমোদিত হয়েছিল

আউটপুট:

/ ./20pct.sh 0.96
.19
/ ./20pct.sh 20.96
4.19
/ ./20pct.sh 1020.96
204,19
$ 

আমি মনে করি আমি সেখানে একটি ফরোয়ার্ড স্ল্যাশ দেখতে পাচ্ছি।
মিলো

@ মিলো যা ব্যাশ প্যারামিটার বিস্তারের/ অংশ এবং কোনও বিভাগ অপারেটর নয়। অনুমতি দিয়েছে নাকি?
ডিজিটাল ট্রমা

1
আমি এটির অনুমতি দেব, এটি এই ক্ষেত্রে কোনও গাণিতিক অপারেটর নয় ...
ওয়াল ওয়েস্ট

1
-3 অবহেলা হিসাবে বিয়োগ হিসাবে কাজ করে না ... @ মাইলো, আপনাকে এই অপারেটরদের গাণিতিক সমতুল্য বাদ দিয়ে অন্য কোনও উপায়ে ব্যবহার করা যেতে পারে তার জন্য অ্যাকাউন্টিং করা দরকার ... উদাহরণস্বরূপ জাভাস্ক্রিপ্টে কনকনেটেটর হিসাবে ব্যবহার করা যেতে পারে। .. আমি কি কোনও পরামর্শ দিতে পারি? পরিবর্তন "নিম্নলিখিত অপারেটরদের কোন ব্যবহার: - * /%" থেকে "এর পাশে তাদের গাণিতিক আকারে নিম্নলিখিত অপারেটরদের কোন ব্যবহার: - * /%"
WallyWest

2
@ ওয়েলিওয়েস্ট শয়তানের উকিল খেলতে, এখানে অস্বীকৃতি এখনও একটি গাণিতিক অপারেটর। সম্ভবত "নিম্নলিখিত অপারেটরদের তাদের অ-অ-অ-গাণিতিক আকারে ব্যবহার করবেন না: + - * /%" ;-)
ডিজিটাল ট্রমা

4

পাইথন 98 * 0.8 = 78.4

d=`len('X'*int("{}{:>02}".format(*(raw_input()+".0").split('.')))*2)`;print'%s.%s'%(d[:-3],d[-3:])

পাইথন 74 (বোনাস ছাড়াই)

d=len('X'*int(raw_input().replace('.',''))*2);print'%s.%s'%(d[:-3],d[-3:])

বিঃদ্রঃ

  • + স্ট্রিং কনটেনটেশনের জন্য ব্যবহৃত হয়
  • * স্ট্রিংয়ের অনুলিপি তৈরি করতে ব্যবহৃত হয়

Ungolfed

def tip():
    amount = raw_input()
    #Add an extra decimal point so that we can accept integer
    #amount
    amount += ".0"
    #Split the integer and decimal part
    whole, frac = amount.split('.')
    #Multiply amount by 100 :-)
    amount = "{}{:>02}".format(whole, frac)
    #Create amount copies of a character
    st = 'X'*amount
    #Double it
    st *= 2
    #Calculate the Length
    d = len(st)
    #Display the result as 3 decimal fraction
    print'%s.%s'%(d[:-3],d[-3:])

বিঃদ্রঃ

প্রশ্নের চেতনা অনুসারে, আমি নিম্নলিখিত সমাধানটিকে বিশ্বাস করি যদিও প্রশ্নের সমস্ত বিধি অনুসরণ করে এটি একটি অপব্যবহার

পাইথন 41

print __import__("operator")(input(),0.2)

পরিশেষে

যদি আপনি জোর দিয়ে থাকেন যে গাণিতিক প্রতীকগুলি নিষিদ্ধ করা হয় তবে তার 90 টি চরিত্রের সমাধান

পাইথন 90 (কোনও গাণিতিক চিহ্ন ছাড়া)

print' '.join(str(int(raw_input().replace(".",""))<<1)).replace(' ','.',1).replace(' ','')

1
যেমন ইতিমধ্যে বলা হয়েছে, *এবং +কেইএসএস ভাঙ্গা হয়েছে (আপনি এগুলির জন্য যা ব্যবহার করেন)।
টমাস বারুচেল

2
@ ברוכאל: No use of the following in mathematical form operators: + - * / % (Thanks Wally West)। অন্য কথায়, প্রশ্নটির পুনঃস্থাপন করা দরকার। এবং আমি এগুলি গাণিতিক আকারে ব্যবহার করি নি
অভিজিৎ

ঠিক আছে, তবে সেই ক্ষেত্রে, এপিএল সমাধানের ডাউনভোটটি সত্যিই ন্যায্য ছিল না, যে কারণে অন্য কোনও সমাধান ডাউনভোট করা হয়নি।
টমাস বারুচেল

আপনার উত্তরে অর্থ সংক্ষিপ্ত পরিমাণে সমস্যা হতে চলেছে, যেমন 0.05
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

আপনি এর `input`পরিবর্তে (ব্যাকটিক্স অন্তর্ভুক্ত) ব্যবহার করতে পারেন raw_input
nyuszika7h

4

এপিএল (9 টি অক্ষর, 7 টি অক্ষর সহ নতুন কোড, 13 টি অক্ষরের সাথে স্থির)

প্রদত্ত পরিমাণের 20% গণনা করুন।

{⍟⍵*⍨*.2} 32

এপিএলে *হ'ল ঘাতক অপারেটর।

এটি অনলাইনে চেষ্টা করুন ।

তবে কেন এটির জন্য একটি ফাংশন ব্যবহার করবেন? এই নতুন সংস্করণটি দেখুন:

⍟(*.2)* 32

এটি অনলাইনে চেষ্টা করুন ।

দয়া করে, ডাউনভোটিংয়ের আগে, কেইওয়াই *হিসাবে নিষিদ্ধ নয় এবং এর অর্থ এখানে গুণ নয়।

ঠিক আছে, এখানে 2 দশমিক (ডায়ালগ এপিএল) সংস্করণটি রয়েছে:

⎕PP←2⋄⍟(*.2)* 32.01

2
এক্সপেনশনেশন এখনও একটি গাণিতিক ক্রিয়াকলাপ, এবং *চ্যালেঞ্জের নিয়ম অনুসারে কোনও গাণিতিক আকারে অনুমোদিত নয়।
টনি এলিস

এক্সপেনসিয়েশন এখানে অবিচ্ছিন্ন নয় এবং অন্যান্য সমাধানগুলি আসলে এটি ব্যবহার করে তবে আপনি এই বিষয়টির বিষয়ে সঠিক যে *এটি কী হিসাবে নিষিদ্ধ এবং গাণিতিক অর্থ হিসাবে নয়।
টমাস বারুচেল

@ টনি এইচ। দয়া করে, আপনি কি আপনার ডাউনটোটটি সরিয়ে ফেলতে পারবেন, যেহেতু অন্যান্য সমাধানগুলিতে স্পষ্টতই সমস্ত মন্তব্য শেষ পর্যন্ত এই জাতীয় কেইএসএস গ্রহণ করবে যতক্ষণ না তারা প্রাথমিক তালিকায় নিষিদ্ধ গাণিতিক ক্রিয়াকলাপের জন্য ব্যবহার না করা হয়।
টমাস বারুচেল

1
@ ברוכאל এটি আমার বোধগম্য যে গাণিতিক অর্থের সাথে সম্পর্কিত কোনওভাবেই একটি তারকাচিহ্নের ব্যবহার নিষিদ্ধ, যার মধ্যে ক্ষয়ক্ষতি অন্তর্ভুক্ত। এক্সটোন্টর ব্যবহার করে এমন প্রতিটি অন্যান্য উত্তর এমন ভাষায় যা এই ^ধরণের অপারেটরের জন্য ক্যারেট ( ) ব্যবহার করে বা কোনও ফাংশন কল ব্যবহৃত হয়। ওপি দ্বারা কোনও স্পেসিফিকেশন নেই যা *কেবলমাত্র এটি গুণনের প্রসঙ্গে ব্যবহৃত হলে তা অনুমোদিত নয়। আমি সন্দেহ করি যে ওপি যদি এই বিষয়ে শাসন করে তবে আমাদের মধ্যে কোনটি চ্যালেঞ্জের নিয়মগুলির ভুল ব্যাখ্যা করে এবং বিভ্রান্তি দূর করতে সাহায্য করে তা কার্যকর হবে।
টনি এলিস

1
সম্ভবত ×এবং ÷অনুমোদিত, সেগুলি তালিকাভুক্ত নয়।
মেরিনাস

4

আর, 30 27 36 34

2 দশমিক জায়গায় রাউন্ডে আপডেট হয়েছে

প্ল্যানাপাস ধন্যবাদ 2 অক্ষর সংরক্ষণ করা

0 থেকে x পর্যন্ত একটি ভেক্টর তৈরি করে এবং দ্বিতীয় তৃতীয় উপাদান নেয়।

a=function(x)round(seq(0,x,l=6)[2],2)

উদাহরণ:

> a(20.36)
[1] 4.07

অারোও ব্যাখ্যা:

seq(0,x,len=6)

সমান ব্যবধানের মধ্যবর্তী মানের সাথে 0 থেকে ইনপুট মান x পর্যন্ত 6 দৈর্ঘ্যের ভেক্টর তৈরি করে।

> seq(0,5,len=6)
[1] 0 1 2 3 4 5

প্রথম মানটি 0%, দ্বিতীয় 20%, তৃতীয় 40%, ইত্যাদি is


কিসের অপেক্ষা ? যারা আর জানেন না তাদের (আমার মতো) কীভাবে এটি কাজ করে তার আরও বিশদ দিন দয়া করে
মাইকেল এম

@ মিশেল কোডটি ব্যাখ্যা করতে আমার উত্তর আপডেট করেছেন
রিফট

আপনার সমাধানটি কোনও গোল করে না।
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ আপনি ঠিক আছেন (তবে বেশিরভাগ সমাধানই গোল হয় না)। 9 অতিরিক্ত অক্ষর "স্বাভাবিক" গোল করে। শুধু আপ rounding হবে পথ কঠিন হতে ...
রিফ্ট

@ রিফ্ট: আমি বেশ কয়েকটি উত্তর পরীক্ষা করেছি (বেশিরভাগ পাইথন, জেএস এবং পার্ল, যেহেতু সেগুলি সহজেই পাওয়া যায়) এবং তাদের বেশিরভাগই গোল করে। আমি যাদের পরীক্ষা করেছি তারা কেউই রাউন্ড আপ করতে পারেনি, যদিও।
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

3

ডিসি + সেড + পাইপ (44 টি অক্ষর)

আমার তৃতীয় উত্তর (একটি এপিএল, একটি জে, এবং এখন একটি পুরানো এবং শ্রদ্ধেয় ডিসি সহ)।

dc -e 5o?p|sed -e 's/\(.\)$/.\1/'|dc -e 5i?p

এটি একটি ছদ্মবেশী ইনপুট জিজ্ঞাসা করবে এবং একটি জটিল উপায়ে 20% গণনা করবে। ইনপুটটি বেস 5 এ রূপান্তরিত হয় (অন্যান্য অনেক সরঞ্জামের সাথে করা সহজ তবে অপেক্ষা করুন ...); শেড দিয়ে শেষ অঙ্কের আগে একটি বিন্দু সংযুক্ত করা হয় (দুর্ভাগ্যক্রমে, ডিসি স্ট্রিংগুলি খুব ভালভাবে পরিচালনা করতে পারে না) এবং তারপরে, ডিসি বেস 5 থেকে ফ্লোট সংখ্যায় ফিরে আসে (সমস্ত সরঞ্জাম এটি করতে পারে না)।


1
"INTEGER ইনপুট" অনুমানটি পূরণ করে না। আমার মনে হয় আপনি আপনার কিন্তু অভিব্যক্তি পরিবর্তন করে এটিকে সমাধান করতে পারেন: dc -e 5o?p|sed 's/\(.\)\./.\1/'|dc -e 5i?p। এই এবং অপসারণ সঙ্গে sedগুলি -eগুলি, এই 42. হয় কিন্তু ফলাফলের এখনও বৈশিষ্ট (না 2 দশমিক স্থান) হল
ডিজিটাল ট্রমা

@DigitalTrauma। তুমি ঠিক. তবে এই সমাধানটি আসলে ধারণার প্রমাণ ছিল এবং ডিসি (এবং বিসি তেও) বেস রূপান্তরের অস্বাভাবিক সম্পত্তি দ্বারা আমি আরও আগ্রহী ছিলাম। আপনার মন্তব্য এবং সেড আপনার স্থির জন্য ধন্যবাদ।
থমাস বারুচেল

2

পাইথন, 88

এটি সংক্ষেপে খুব কাছাকাছি নয়, তবে এটি দেখায় যে কীভাবে পাঁচ দ্বারা সাধারণ মানসিক বিভাজন করা উচিত। এটি ধরে নিয়েছে যে ইনপুটটি অবশ্যই xx.xx ফর্মের হওয়া উচিত

import math
a,b=raw_input().split('.')
print'%.2f'%math.ldexp(float(a[0]+'.'+a[1]+b),1)

অথবা যে কোনও দৈর্ঘ্যের ইনপুট দেওয়ার জন্য, 3 টি বর্ণের সংযোজন প্রয়োজন।

import math
a,b=raw_input().split('.')
print'%.2f'%math.ldexp(float(a[:-1]+'.'+a[-1]+b),1)

ব্যাখ্যা: আমরা ইনপুটটিকে স্ট্রিং হিসাবে গ্রহণ করি, তারপরে দশমিক পয়েন্টটিকে এক জায়গায় এগিয়ে নিয়ে যাই (10 দ্বারা বিভাজক)। তারপরে আমরা এটিকে একটি ফ্লোতে কাস্ট করে ldexpফাংশনটি এটি 2 দিয়ে গুণতে ব্যবহার করি।

মনে রাখবেন যে এই উত্তরে, +স্ট্রিংগুলি কংক্রিটেশন অপারেটর এবং %ফর্ম্যাট করতে ব্যবহৃত হয় print

যদি আপনি এই অক্ষরগুলির কোনও ব্যবহার না করার জন্য জেদ করেন তবে এখানে একটি 159 অক্ষর সমাধান রয়েছে:

import math
a,b=raw_input().split('.')
l=[a[0]]
l.append('.')
l.append(a[1])
l.append(b)
c=str(math.ldexp(float(''.join(l)),1))
print ''.join([c[0:2],c[2:4]])

ইতিমধ্যে অন্যান্য অনেক উত্তরের জন্য বলেছি, তবে কেইওয়াইএসটি ভেঙে গেছে (যেহেতু তারা আপনার কোডের টুকরোতে যার অর্থ বোঝায়) সেহেতু আমি সত্যিই এটি মনে করি না +এবং -অনুমোদিত।
টমাস বারুচেল

@ ברוכאל: আমার মন্তব্যে আপনার মন্তব্যে আমার প্রতিক্রিয়া দেখুন
অভিজিৎ

আপনার ব্যবহৃত .split('.'), আমার উত্তর কাটা এক গৃহস্থালির কাজ
user80551

2

ডিসি + সেড - 45 * 0.8 = 36

( উত্তর দ্বারা অনুপ্রাণিত দ্বারা ברוכאל )

  • যে কোনও টিপ পরিমাণ (পূর্ণসংখ্যা বা ভাসমান) পরিচালনা করে

উদাহরণ রান (ইনপুট STDIN এর মাধ্যমে গৃহীত হয়):

$ dc -e 5o?.0+p|sed 's/\(.\)\./.\1/'|dc -e 5i?p
42
8.400
$ dc -e 5o?.0+p|sed 's/\(.\)\./.\1/'|dc -e 5i?p
20.96
4.1920

.0+ধারণা মহান; আমি আমার দ্বারা অনুপ্রাণিত আপনার সমাধানের পক্ষে ভোট দিয়েছি, তবে কেউ কেউ আপনাকে সংযোজন ব্যবহার করছে বলেও বলতে পারে; কিছুটা কাজ হতে পারে? আমি চেষ্টা করেছি dc -e 9k5o?v2^pতবে এটি আরও 2 টি অক্ষর।
থমাস বারুচেল

@। আমি বুঝতে পারি নি যে + এমনকি এই প্রসঙ্গেও যোগ হিসাবে যোগ্যতা অর্জন করতে পারে।
ডিভনুল

@ ברוכאל আমি এটি মুছে ফেলব। আপনাকে এমনটি পরিবর্তন করার জন্য অনুরোধ করুন যাতে এটি ভাসমান পরিচালনা করতে পারে এবং এর জন্য যোগ্যতা অর্জন করতে পারে -20%!
ডেভনুল

2

গণিত, ১৯

Log[(E^.2)^Input[]]

গাণিতিক অপারেটরের কোন ব্যবহার +, -, *, /, অথবা %। উত্তর গণনা করতে লোগারিদমের বৈশিষ্ট্য ব্যবহার করে; আপনি অভিব্যক্তি সহজ করার সময়, আপনি পাবেন.2*Input[]

বোনাস সহ ( 30 * 0.8 = 24 ):

Log[((E^.01)^Input[])^Input[]]

প্রথমে শতাংশটি ইনপুট করুন, তারপরে পরিমাণটি।

আপনি অভিব্যক্তি সহজ করার সময়, আপনি পাবেন Input[]*Input[]*.01

কোডটি ছোট করার ক্ষেত্রে সহায়তার জন্য আপনাকে ধন্যবাদ ।


3
আপনি কি সত্যই নিশ্চিত যে এটি সরল করা যায় না? আমার কাছে Log[E^2]বা Log[E^Input[]]আরও শীঘ্রই লেখা যেতে পারে। এমনকি 10^-1লেখা যেতে পারে .01(যদিও আমি ম্যাথমেটিকাকে ব্যবহার করি না তবে আমি এটি যথেষ্ট নিশ্চিত)) পুরো এক্সপ্রেশনটি (E^10^-1)^Log[E^2]এমন কিছু মনে হয় E^.2, তাই না?
টমাস বারুচেল

1

টিআই-89 বেসিক - 39 * 0.8 = 31.2

Input y:Input x:Disp ln(((e^y)^.01)^x))

দুটি সংখ্যা ইনপুট করে কাজ করে, তারপরে লগারিদম বৈশিষ্ট্যগুলি গণনা করার জন্য ব্যবহার করে x * y / 100

যদি আমি গ্লোবাল ভেরিয়েবলগুলিতে প্লেসমেন্ট থেকে ইনপুট অনুমান করতে পারি xএবং y, তবে এটি 17 * 0.8 = 13.6 এর স্কোরের জন্য খুব ছোট :

ln(((e^y)^.01)^x)

বোনাস ছাড়াই ( 12 ):

ln((e^.2)^x)

তবে যদি এটি কোনও ফাংশনে আবৃত হওয়া দরকার, তবে এটি কাজ করে ( ৩৮.৪ অক্ষর, ৩০.৪ এর জন্য ):

:f(x,y):Func:ln(((e^y)^.01)^x):EndFunc

দয়া করে, আপনার অন্যান্য সমাধানগুলিতে আমার মন্তব্যগুলি দেখুন (ম্যাথমেটিকায়); এই কোড সত্যিই অনেক সরলীকৃত করা যেতে পারে।
টমাস বারুচেল

Input x,y??? 83/84 এ কাজ করে।
টিমটেক

@ টিমটেক 89-তে কাজ করে না, তবে আমি সম্ভবত কিছু করতে পারি Input{x,y}(83/84 আছে কি ln?)
জাস্টিন

@ কুইনকুনস হ্যাঁ, আমার নতুন উত্তর দেখুন।
টিমটেক

žr¹msmžr.n- 05AB1E এ এই কোডটির নির্লজ্জ পোর্ট।
যাদু অক্টোপাস উরন

1

পিএইচপি 107 * .8 = 85.6

পিএইচপি সহ কোড-গল্ফের পক্ষে সত্যিই দৌড়াতে পারি না, তবে কমপক্ষে আমি স্ট্রিংগুলিতে পরিচালনা করতে পারি। কমান্ড-লাইন আর্গুমেন্ট হিসাবে উভয় সংখ্যা গ্রহণ করে।

<? @$r=strrev;unset($argv[0]);echo$r(substr_replace($r(str_replace('.','',array_product($argv)))),'.',2,0);

আমি এটি ব্যবহার করতে না পারার কারণে এটি দুটিবার বিপরীত করতে হয়েছিল --( :(


1

পাইথন, 81 80 89 টি অক্ষর

a,b=map(str,raw_input().split('.'));c=str(int(a+b)<<1).zfill(4);print c[:-3]+'.'+c[-3:-1]

ব্যাখ্যা

x = raw_input()       # say 20.96
a , b = x.split('.')  # a = 20 , b = 96
c = a + b             # c = '2096'      # string concatenation , multiplying by 100
d = int(c)<<1         # multiply by 2 by bitshift left , c = 4096
e = str(d).zfill(4)   # zfill pads 0's making the string 
                      # atleast 4 chars which is required 
                      # for decimal notation next

#     divide by 1000 (4) + . (4.) + fraction rounded to 2 decimals (4.09)
print        e[:-3]      +   '.'  +              e[-3:-1]

প্রযুক্তিগতভাবে, এটি প্রতারণা করছে যেহেতু এটি চারদিকে গোল না করে দুটি দশমিক দিকে ছাঁটাই হয়েছে তবে আমি যুক্তি দিতে পারি যে এটি গোল হয়ে গেছে (আপনার পক্ষে ভাল, কম টিপ)।


আমি মনে করি আপনি এর [-3:]পরিবর্তে করতে পারেন[-3:-1]
জাস্টিন

@ কুইনকুনস পারবেন না, -1 হ'ল দুই দশমিক।
ব্যবহারকারী 80551

@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ হ্যাঁ, এটি স্থির করুন।
ব্যবহারকারী 80551

1

জাভাস্ক্রিপ্ট 251 (জোরপূর্বক সীমাবদ্ধতা: না +, -, *,? বা কোনও উপায়ে%)

আমি জানি যে এটি জিতবে না, তবে আমি বুঝতে পেরেছিলাম যে আমি খুব কঠোর পদ্ধতির মাধ্যমে ব্রাউনি পয়েন্ট পেতে চেষ্টা করব এবং সীমাবদ্ধ অপারেটরগুলিকে কোনও আকার বা আকারে ব্যবহার করার কথা ভাবিও না ... ফলস্বরূপ, আমি এনেছি এই সৌন্দর্য...

A=(x,y)=>{for(;x;)b=x^y,x=(a=x&y)<<1,y=b;return y};D=(x,y,i=x,j=0)=>{for(;i>=y;)i=A(i,A(~y,1)),j=A(j,1);return j};alert(parseFloat((x="00".concat(String(D(prompt().replace(".",""),5)))).substr(0,A(x.length,y=A(~2,1))).concat(".").concat(x.substr(y))))

আমি অ্যাড ফাংশন তৈরি করতে বিটওয়াইজ অপারেশনগুলি ব্যবহার করেছি A এবং তারপরে সেখান থেকে চেইন আপ শুরু করেছি:

পূর্ণসংখ্যা বিভাগের ক্রিয়াটি Dনেতিবাচক সংযোজনের একটি সিরিজ ব্যবহার করেছে ( A(x,A(~y,1)একটি লুপের ওপরে আকারে বিয়োগ; বাকীটি স্ট্রিং ম্যানিপুলেশন এবং কনটেনটেশন যাতে ব্যবহার এড়াতে পারে)+ অপারেটরগুলি ...

এই কাজ করার জন্য দুটি দশমিক স্থানের সাথে সংখ্যাটি দশমিক আকারে সরবরাহ করতে হবে ...


আহ, এটা এখন হবে ... যদিও আমি যদি নতুন নিয়ম রাখা হয়েছিল, আমি এটা উপর প্রসারিত করতে ... 251 এখন বাইট ... ছিল
WallyWest

1

পার্ল, 50 60 বাইট

$_=<>;s|\.||;$_<<=1;$_="00$_";m|\d{3}$|;printf'%.2f',"$`.$&"

এসটিডিআইএন-এ ইনপুটটি আশা করা হচ্ছে। এটিতে দশমিক সংখ্যার সাথে দশমিক বিভাজক যুক্ত থাকতে হবে। আউটপুটটি STDOUT এ লেখা হয়।

আপডেট: পদক্ষেপটি $_<<=1নেতৃস্থানীয় জিরোগুলি সরিয়ে দেয়। সুতরাং m|\d{3}$|বিলের সাথে মেলে না <১. সুতরাং দশ বাইট$_="00$ করা হয়েছিল, এখন এমনকি 0.00কাজ করে।

উদাহরণ:

  • ইনপুট: 20.96আউটপুট:4.19
  • ইনপুট:, 12.34আউটপুট:2.47

অবরুদ্ধ সংস্করণ:

$_=<>;
s|\.||; # multiply by 100
$_ <<= 1; # multiply by 2
$_="00$_";
m|\d{3}$|; # divide by 1000
printf '%.2f'," $`.$&"

প্রথমে নম্বরটি এসটিডিএন থেকে পড়ে is তারপরে দশমিক বিন্দুটি সরানো হয়, এটি 100 এর সাথে গুণিত হয় the তারপরে দশমিক বিন্দুটি পুনরায় লাগানো হয় এবং ফলটি মুদ্রিত হয় এবং দুটি দশমিক অঙ্ক হয়।

50 বাইট, যদি বিল ≥ 1:

যদি x.xxএর চেয়ে বড় বা সমান হয় 1.00, তবে 10 বাইটগুলি সরানো যেতে পারে:

$_=<>;s|\.||;$_<<=1;m|\d{3}$|;printf'%.2f',"$`.$&"

@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳: ধন্যবাদ, এখনই স্থির।
হাইকো ওবারডিক

1

জাভাস্ক্রিপ্ট (ES6) (রেজেক্স) 142

রেজেক্স দুর্দান্ত এবং এটি অনেক কিছুই করতে পারে। এটি গণিতও করতে পারে!

a=('x'.repeat(prompt().replace('.', ''))+'xxxx').match(/^((x*)\2{99}(x{0,99}))\1{4}x{0,4}$/);c=a[3].length;alert(a[2].length+'.'+(c<10?'0'+c:c))

পঠনযোগ্য সংস্করণ:

function tip(m) {
    var s = 'x'.repeat(m.replace('.', '')) + 'xxxx';
    var a = s.match(/^((x*)\2{99}(x{0,99}))\1{4}x{0,4}$/);
    var c = a[3].length;
    if (c < 10) c = '0' + c;
    return a[2].length + '.' + c;
}

দ্য tip()ফাংশন আশা স্ট্রিং যুক্তি, বরং সংখ্যার চেয়ে।

সমস্ত উদাহরণ *, /, +গণিত অপারেশন এর সাথে সম্পর্কিত করা হয় না।

  • + এটি ব্যবহৃত হয় সমস্ত ক্ষেত্রে স্ট্রিং কনটেনটেশন।
  • * RegExp বাক্যবিন্যাসের অংশ
  • / আক্ষরিক রেজিপ্লেক্সের ডিলিমিটার

ইনপুট অবশ্যই. দশমিক পয়েন্ট হিসাবে ব্যবহার করতে হবে , এবং অবশ্যই আছে দশমিক পয়েন্টের পরে 2 ডিজিট হবে।

স্নিপেট স্ট্যাক করুন

<button onclick = "a=('x'.repeat(prompt().replace('.', ''))+'xxxx').match(/^((x*)\2{99}(x{0,99}))\1{4}x{0,4}$/);c=a[3].length;alert(a[2].length+'.'+(c<10?'0'+c:c))">Try it out</button>


0

হাস্কেল 32 অক্ষর -20% = 25.6 অক্ষর

t y x=log $(^x)$(**0.01)$ exp y

অপব্যবহারকারীরা লগারিদমে বহুগুণে পরিণত হয় এই অপব্যবহার করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.