আমার বন্ধু এবং আমি আমাদের এপি কম্পিউটার সায়েন্স ক্লাসে একটি ল্যাবে কাজ করছিলাম এবং আমরা গল্ফকে একটির সমস্যা সমাধান করার সিদ্ধান্ত নিয়েছিলাম যেহেতু আমরা শেষ করার পরেও অর্ধেক ক্লাসটি ফ্রি ছিল। এখানে প্রশ্ন:
একটি সংখ্যা দেওয়া হয়েছে, n এর প্রতিটি অঙ্ক দ্বারা বিভাজ্য?
উদাহরণস্বরূপ, 128 এই পরীক্ষায় উত্তীর্ণ হবে - এটি 1,2 এবং 8 দ্বারা বিভাজ্য হবে কোনও শূন্য সহ যে কোনও সংখ্যা স্বয়ংক্রিয়ভাবে নম্বরটিকে অযোগ্য ঘোষণা করবে। আপনি যদি চান অন্য ভাষা ব্যবহার করতে পারেন এবং সেগুলির সাথে সমাধানগুলি পোস্ট করতে পারেন, তবে আমরা ক্লাসে ভাষাটি ব্যবহার করি তেমন কমপ্যাক্ট লোকেরা জাভাতে কীভাবে প্রোগ্রামটি তৈরি করতে পারে তা দেখতে আমরা আগ্রহী। এখনও অবধি, আমাদের দুজনেরই রয়েছে 51. এখানে আমার বর্তমান কোডটি রয়েছে:
public boolean dividesSelf(int n){for(int p=n;n%10>0;)n/=p%(n%10)>0?.1:10;return n<1;}
// 51 characters
// Breakdown:
// for(int p=n; Saves one semicolon to put declaration into for loop
// n%10>0;) Basic check-for-zero
// n/= Pretty simple, discarding one number off of n at a time
// p%(n%10)>0? If p (the given value) is not divisible by n%10 (the current digit)...
// .1:10; Divide by .1 (multiply by 10) so it fails the check next iteration. If it is divisible, divide by 10 to truncate the last digit
// return n<1 If the number was fully divisible, every digit would be truncated, and n would be 0. Else, there would still be non-zero digits.
আবশ্যকতা
পদ্ধতির স্বাক্ষর আপনি যা চান তা হতে পারে। শুধু ফাংশন বডি গণনা। যদিও নিশ্চিত হয়ে নিন যে পদ্ধতিটি একটি বুলিয়ান মান দেয় এবং কেবল একটি সংখ্যাসূচক প্যারামিটারে যায় (স্ট্রিং নয়)।
কোড অর্ডার মূল প্রশ্ন এর নির্দেশ সত্য থাকার মধ্যে এইসব ক্ষেত্রে সমস্ত (পাস করতে সক্ষম হতে হবে, শুধুমাত্র বুলিয়ান সত্য এবং মিথ্যা মান গণনা যদি ভাষা সমর্থন Booleans। যদি এবং কেবল যদি আপনার ভাষায় বুলিয়ান ভেরিয়েবল আপনি নেই 0 এর সাথে মিথ্যা এবং যে কোনও ননজারো পূর্ণসংখ্যার সাথে সত্য (সাধারণত 1 বা -1) উপস্থাপন করতে পারে:
128 -> true
12 -> true
120 -> false
122 -> true
13 -> false
32 -> false
22 -> true
42 -> false
212 -> true
213 -> false
162 -> true
204 -> false
এছাড়াও, আমরা গণ্য করা হবে না হোয়াইটস্পেস, তাই, একই কাজ করতে দ্বিধা বোধ করবেন না যদি না হোয়াইটস্পেস প্রোগ্রামের কাজ অপরিহার্য (তাই জাভা নতুন লাইন গণনা করা হয় না, কিন্তু এর মধ্যে একটি একক স্থান int
এবং x=1
সৌভাগ্য কামনা করছি না গণনা।) !
0
সংখ্যাগুলির মধ্যে একমাত্র সংখ্যা যা তাদের প্রত্যেকের একাধিক) তাই আমি ধারণা করি যে বেশিরভাগ উত্তর কেবল এটির জন্য একটি চেক অন্তর্ভুক্ত করার জন্য একটি অনিচ্ছাকৃত উপায়ে আরও দীর্ঘতর হবে। সুতরাং আমি শিরোনাম দ্বারা উত্সাহিত হিসাবে সমস্যাটি আরও ভাল পছন্দ করে (এর অঙ্কগুলির দ্বারা একাধিক হওয়ার চেয়ে এটির সংখ্যাগুলি দ্বারা বিভাজ্য, যা 0 বাদ দেয়)।
true
এবংfalse
বা হয় truthy / falsy মান ঠিক আছে হিসাবে ভাল? ৩.java
ট্যাগটি এখানে সত্যিই প্রযোজ্য নয়, কারণ চ্যালেঞ্জটি নিজেই জাভা সম্পর্কিত নয় re