আরেকটি তারিখ-কারচুপি সমস্যা: পি
কার্য
এমন কোনও প্রোগ্রাম বা একটি ফাংশন লিখুন যা কোনও ব্যবহারকারী দ্বারা প্রদত্ত দুটি তারিখের মধ্যে পার্থক্য গণনা করে।
ইনপুট আউটপুট
অনুরূপ আগের , ইনপুট দুটি YYYYMMDDগুলি, একটি স্থান দ্বারা পৃথক , একটি কমা ,, অথবা একটি বিয়োগ চিহ্ন -।
ইনপুট মানগুলির উদাহরণ:
20100101-20010911
20110620-20121223
19000101 20101010
33330101,19960229
00010101 99991231
আউটপুট একটি পূর্ণসংখ্যা, যা দিনের মধ্যে দুটি তারিখের মধ্যে পার্থক্য।
উদাহরণস্বরূপ, ইনপুট 20110101-20100101ফলন দেয় 365এবং 33320229 17000101ফলন দেয় 596124।
আপনি ফলাফল পরীক্ষা করতে পারেন এইখানে এখানে । (নীচে রিন্টন এর মন্তব্য দেখুন)) দুটি তারিখ একই 0হলে, তারিখটি বৈধ হলে প্রোগ্রামটি ফেরত আসা উচিত ( স্কোর দেখুন )।
সীমাবদ্ধতা
অবশ্যই, আপনার অবশ্যই কোনও ধরণের ফাংশন / শ্রেণি / ... ব্যবহার করা উচিত নয় যা টাইমস্ট্যাম্প বা তারিখের সাথে সম্পর্কিত এবং আপনার গ্রেগরিয়ান ক্যালেন্ডার ব্যবহার করা উচিত ।
স্কোর
যদি আপনার কোড সীমাবদ্ধতা না রাখে, তবে score = -∞।
ডিফল্ট bonusহয় 1।
- যদি আপনার কোড ইনপুটগুলির আদেশ নির্বিশেষে কাজ করে (উদাহরণস্বরূপ,
20100101,20110101রিটার্ন365বা-365)bonus+=1,। - যদি আপনার কোড বছর 0 , পরিচালনা করতে পারে
bonus+=0.5। - আপনার কোড স্বীকার করে অবৈধ মাস / তারিখ (1 ~ 12 মধ্যে), মত (1 ~ 31 মধ্যে) যদি
20109901বা34720132, এবং কপি করে প্রিন্টE(& মত প্রোগ্রাম বা আয় কিছু বন্ধ0),bonus+=1। - উপরে শাসনের হোক না কেন, আপনার কোডটি অবৈধ তারিখ, মত স্বীকার করে যদি
20100230,20100229অথবা20111131, এবং কপি করে প্রিন্টE(& বন্ধ মত প্রোগ্রাম বা আয় কিছু0),bonus+=1। - উপরোক্ত দুটি নিয়ম নির্বিশেষে, যদি আপনার কোডটি অবৈধ ইনপুট স্ট্রিংকে পছন্দ করে
20100101|20100202বা পছন্দ করে2010010120100202এবং মুদ্রণ করেE(& প্রোগ্রামটি শেষ করে দেয় বা এর মতো কিছু ফেরত দেয়0)bonus+=1,।
score = floor(-4.2*code.length/bonus)। সর্বোচ্চ স্কোর জয়যুক্ত কোড। দুটি শীর্ষ কোডের যদি একই স্কোর থাকে তবে সর্বোচ্চ বোনাসযুক্ত কোডগুলি জয়ী হয়। যদি দুটি শীর্ষ কোডের উভয়ই একই স্কোর এবং বোনাস থাকে তবে সর্বাধিক ভোটের কোডগুলি জয়ী হয়।
(নির্ধারিত: যখন 5 টিরও বেশি কোড রয়েছে যেখানে বেশি (বা সমান) +1ভোট রয়েছে)
20040229। : পি
365*4 + 2 + 2= 1464 সাল থেকে আলফা ভুল ছিল the তথ্যের জন্য ধন্যবাদ!