Coddy Active Users
الدرس 3 من 3 في دورة تحديات البرمجة للمقابلات - الحزمة الثالثة على Coddy.
ليس كل مستخدمي Coddy المسجلين نشطين.
دالة التكرار (recursion) التي تمثل مستخدمي Coddy النشطين أسبوعياً هي عملية حسابية تتضمن كلاً من المستخدمين المسجلين السابقين (من التحدي الأخير) وأيضاً المستخدمين النشطين السابقين:
إذا كان الأسبوع السابق يحتوي على x1 من المستخدمين و x2 من المستخدمين النشطين، وكان هذا الأسبوع يحتوي على y1 من المستخدمين و y2 من المستخدمين النشطين، فسيكون لدى Coddy x1+x2+y1+y2 مستخدماً نشطاً في الأسبوع القادم.
كان لدى Coddy 0 مستخدم نشط في الأسبوع الأول و 1 مستخدم نشط في الأسبوع الثاني.
التحدي
صعباكتب دالة getActiveUsers التي تستقبل عدداً صحيحاً n وتُرجع عدد المستخدمين النشطين لدى Coddy في الأسبوع رقم n باقي القسمة على 109 + 7.
القيود:
1 < n < 100
مثال 1،
الإدخال: 3
المخرجات المتوقعة: 2
الشرح: في هذه الحالة x1=x2=0، y1=y2=1، وبالتالي سيكون هناك 0+0+1+1=2 مستخدمين نشطين في الأسبوع الثالث.
مثال 2،
الإدخال: 4
المخرجات المتوقعة: 7
الشرح: 2+3+1+1=7.
مثال 3،
الإدخال: 5
المخرجات المتوقعة: 22
الشرح: 2+3+10+7=22.
جرّب بنفسك
int getActiveUsers(int n) {
// اكتب الكود هنا
}