চ্যালেঞ্জ
(ক্রেডিট কার্ড) নম্বর যাচাই করার জন্য লুহন অ্যালগোরিদম গণনা করার জন্য সবচেয়ে সংক্ষিপ্ত প্রোগ্রাম বা ফাংশনটি লিখুন ।
Luhn অ্যালগরিদম ব্যাখ্যা
রোসেটটা কোড থেকে, এই চ্যালেঞ্জের উদ্দেশ্যে এই অ্যালগরিদম এর উদাহরণ ইনপুট সহ যেমন নির্দিষ্ট করা হয়েছে 49927398716
:
Reverse the digits, make an array:
6, 1, 7, 8, 9, 3, 7, 2, 9, 9, 4
Double the numbers in odd indexes:
6, 2, 7, 16, 9, 6, 7, 4, 9, 18, 4
Sum the digits in each number:
6, 2, 7, 7, 9, 6, 7, 4, 9, 9, 4
Sum all of the numbers:
6 + 2 + 7 + 7 + 9 + 6 + 7 + 4 + 9 + 9 + 4 = 70
If the sum modulo 10 is 0, then the number is valid:
70 % 10 = 0 => valid
আইও বিধি
ইনপুট : আপনার ভাষার ইনপুট / পছন্দের আউটপুট বিন্যাসে একটি স্ট্রিং বা সংখ্যা (আপনার পছন্দ)
আউটপুট : যথাযথ বা মিথ্যা মান , যথাক্রমে, উপরের পরীক্ষা অনুযায়ী ইনপুটটি বৈধ কিনা তা নির্দেশ করে।
নোটস / টিপস
আপনি যদি পরীক্ষার জন্য এগুলি ব্যবহার করেন তবে ভুলক্রমে নিজের ক্রেডিট কার্ড বা অ্যাকাউন্ট নম্বর পোস্ট করার চেষ্টা করবেন না :)
যদি ইনপুটটি অবৈধ এবং নির্দিষ্ট অ্যালগরিদম দিয়ে প্রক্রিয়া করা অসম্ভব (উদাহরণস্বরূপ, এর সাথে কাজ করা খুব ছোট), আপনি আমার কম্পিউটারটি ফুটিয়ে তোলা সহ যা কিছু করতে পারেন তা করতে পারেন।
তবে , আগের বুলেটটির অর্থ এই নয় যে আপনার ভাষা নম্বরের সাথে যা খুশি তাই করতে পারে যা এটি পরিচালনা করতে খুব বড়। যদি আপনার ভাষা কোনও পরীক্ষার কেস পরিচালনা করতে সক্ষম না হয় তবে স্ট্রিংটিকে ইনপুট হিসাবে নেওয়া বিবেচনা করুন।
উদাহরণ
নিম্নলিখিত পাইথন স্ক্রিপ্টের সাহায্যে বৈধতা দেওয়া হয়েছিল ; যদি আপনি মনে করেন যে কোনওটি ভুল হয়েছে বা আপনার কাছে প্রশ্ন রয়েছে, কেবল @ বিড়ালকে পিং করুন।
49927398716 True
49927398717 False
1234567812345670 True
1234567812345678 False
79927398710 False
79927398711 False
79927398712 False
79927398713 True
79927398714 False
79927398715 False
79927398716 False
79927398717 False
79927398718 False
79927398719 False
374652346956782346957823694857692364857368475368 True
374652346956782346957823694857692364857387456834 False
8 False **
0 True **
** পাইথন বাস্তবায়ন অনুসারে, তবে আপনি যে কোনও কিছু করতে পারেন কারণ স্পেসিফিকেশনটির একটি কঠোর আনুগত্যের দ্বারা এগুলি যোগ্যতার পক্ষে খুব কম।
উপরের যে কোনও যদি বিদ্যমান উত্তরগুলি অকার্যকর করে (যদিও আমি বিশ্বাস করি যে এটি সম্ভব হওয়া উচিত নয়), তবে সেই উত্তরগুলি কঠোরভাবে বৈধ। তবে, নতুন উত্তরগুলি, বৈধ হওয়ার জন্য, উপরের স্পেসিফিকেশনটি অনুসরণ করা উচিত।