ধাঁধা
আমি হাই স্কুলে পড়ার সময় শুনেছিলাম একটি ছোট ধাঁধাটি এরকম কিছু হয়েছিল ...
- প্রশ্নকারী আমাকে তার একটি নম্বর দিতে বলত;
- সংখ্যাটি শুনে, প্রশ্নকর্তা বার বার তার উপর এক ধরণের রূপান্তর করতেন (উদাহরণস্বরূপ, তিনি দশ বলে তিনটি বলতে পারেন ) অবশেষে ৪ নম্বর পৌঁছানোর আগ পর্যন্ত (যে বিন্দুতে তিনি চারটি দিয়ে শেষ করবেন তা যাদু )।
- যে কোনও সংখ্যা যাই হোক না কেন, শেষ পর্যন্ত চারটি রূপান্তরযোগ্য বলে মনে হচ্ছে।
লক্ষ্যটি ছিল ট্রান্সফর্মেশন ফাংশনটি খুঁজে বের করার চেষ্টা করা এবং তারপরে নির্ভরযোগ্যভাবে এই ধাঁধাটি নিজেকে প্র্যাক্টর করতে সক্ষম হোন।
সমাধান
যে কোনও পদক্ষেপে রূপান্তর কার্য ছিল function
- প্রশ্নে নম্বর নিন,
- হাইফেন বা স্পেসগুলি উপেক্ষা করে এর ইংরেজী শব্দের উপস্থাপনায় অক্ষরের সংখ্যা গণনা করুন বা "এবং" (যেমন, "দশ" এর মধ্যে 3 টি অক্ষর রয়েছে, "চৌত্রিশ" -এ 10 অক্ষর রয়েছে, "একশ তেতাল্লিশ" এটিতে 20 টি বর্ণ রয়েছে)।
- চিঠি সংখ্যা।
আমি যে সমস্ত সংখ্যার পরীক্ষার যত্ন নিয়েছি তার সবগুলির জন্য, এটি ৪ এ রূপান্তরিত হয়, যেহেতু "চার" এরও চারটি বর্ণ রয়েছে, তাই এখানে অসীম লুপ থাকবে; পরিবর্তে এটি কেবল ক্রম শেষ করে কনভেনশন দ্বারা যাদু হিসাবে উল্লেখ করা হয় ।
চ্যালেঞ্জ
আপনার চ্যালেঞ্জটি হ'ল এমন একটি কোডের টুকরো তৈরি করা যা ব্যবহারকারীর কাছ থেকে একটি নম্বর পড়বে এবং তারপরে "ফোর ইজ ম্যাজিক" না পৌঁছানো পর্যন্ত রূপান্তর ফাংশনটি বারবার প্রয়োগ করা হবে তা দেখিয়ে লাইনগুলি মুদ্রণ করবে।
বিশেষত:
- সমাধানগুলি অবশ্যই নিজের মধ্যে এবং সম্পূর্ণ প্রোগ্রাম হতে হবে। তারা কেবল ফাংশন হতে পারে না যা ইনপুটটির একটি সংখ্যা - ফ্যাক্টর গ্রহণ করে।
- ইনপুট অবশ্যই স্ট্যান্ডার্ড ইনপুট থেকে পড়তে হবে। ("প্রতিধ্বনি" থেকে পাইপ দেওয়া বা ইনপুট পুনর্নির্দেশ ব্যবহার করা ঠিক আছে যেহেতু এটি স্টিডিন থেকেও আসে)
- ইনপুটটি সংখ্যা আকারে হওয়া উচিত।
- ট্রান্সফর্মেশন ফাংশনের প্রতিটি প্রয়োগের জন্য, একটি লাইন প্রিন্ট করা উচিত:
a is b.
যেখানে a এবং b রূপান্তরটিতে সংখ্যার সংখ্যাযুক্ত ফর্ম। - পূর্ণ স্টপস (পিরিয়ড) প্রয়োজন!
- শেষ লাইনে স্বাভাবিকভাবেই বলা উচিত
4 is magic.
,। - কোডটি 0 থেকে 99 এর মধ্যে সমস্ত সংখ্যার জন্য সঠিক আউটপুট তৈরি করা উচিত ।
উদাহরণ:
> 4
4 is magic.
> 12
12 is 6.
6 is 3.
3 is 5.
5 is 4.
4 is magic.
> 42
42 is 8.
8 is 5.
5 is 4.
4 is magic.
> 0
0 is 4.
4 is magic.
> 99
99 is 10.
10 is 3.
3 is 5.
5 is 4.
4 is magic.
বিজয়ী হ'ল উত্স কোডের অক্ষরের সংখ্যা অনুসারে সংক্ষিপ্ততম জমা দেওয়া যা সঠিক ।
বোনাস
আপনি কোডটির এমন একটি সংস্করণ লেখার চেষ্টা করতে পারেন যা রূপান্তর ফাংশনের প্রতিটি প্রয়োগের সাথে সংখ্যার জন্য ENGLISH NAMES প্রিন্ট করে। মূল ইনপুটটি এখনও সংখ্যাসূচক, তবে আউটপুট লাইনে সংখ্যার শব্দ ফর্ম থাকা উচিত।
(আপনার কোড সহ আকার আঁকার জন্য ডাবল বোনাস)
(সম্পাদনা) কিছু স্পষ্টতা:
- আমি শব্দটি উভয় পক্ষেই সমস্ত প্রযোজ্য ক্ষেত্রে যেমন প্রদর্শিত হোক তা চাই
Nine is four. Four is magic.
- যদিও আমি মূলধন সম্পর্কে চিন্তা করি না। এবং আপনি কীভাবে টোকেন শব্দটি পৃথক করা উচিত তা বিবেচনা করে না:
ninety-nine
ঠিক আছে,ninety nine
ঠিক আছে,ninetynine
ঠিক নেই।
আমি এই চ্যালেঞ্জের বিষয়ে বোনাস প্রতিযোগিতার জন্য একটি পৃথক বিভাগ বিবেচনা করছি, সুতরাং আপনি যদি এটির জন্য যান তবে আপনার কোডটি সংখ্যাসূচক সংস্করণের চেয়ে লম্বা হওয়ার বিষয়ে চিন্তা করবেন না।
প্রতিটি সংস্করণের জন্য একটি সমাধান জমা নির্দ্বিধায়।