Oddish: অঙ্কগুলোর যোগফল বিজোড়। Evenish: অঙ্কগুলোর যোগফল জোড়।
উদাহরণ
434667 → 4+3+4+6+6+7 = 30 (জোড়) → Evenish → false 123 → 1+2+3 = 6 (জোড়) → Evenish → false 124 → 1+2+4 = 7 (বিজোড়) → Oddish → true
সমাধান (রিকার্সিভ)
const isOddish = (num, sum = 0) => {
num = Math.abs(num);
if (num === 0) return sum % 2 === 1;
return isOddish(Math.floor(num / 10), sum + (num % 10));
};
// ইটেরেটিভ (বेहतर)
const isOddishIterative = (num) => {
let sum = 0;
num = Math.abs(num);
while (num > 0) {
sum += num % 10;
num = Math.floor(num / 10);
}
return sum % 2 === 1;
};
// ফাংশনাল
const isOddishFP = (num) =>
String(Math.abs(num))
.split('')
.reduce((sum, d) => sum + Number(d), 0) % 2 === 1;
// টেস্ট
console.log(isOddish(434667)); // false (Evenish)
console.log(isOddish(123)); // false (Evenish)
console.log(isOddish(124)); // true (Oddish)
console.log(isOddish(-434667)); // false (নেগেটিভ হ্যান্ডল)
অ্যাপ্লিকেশন
- চেক ডিজিট ক্যালকুলেশন (Luhn algorithm-এ সমান ধারণা)
- চেকসম ভেরিফিকেশন
- পাজল ও গেম লজিক
উৎপাদন
false