Dislike of Threes
Dislike of Threes
يوجد \(T\) من حالات الاختبار. في كل حالة اختبار يُعطى عدد صحيح موجب \(K\). ولدينا سلسلة عددية موجبة بحيث كل قيمة فيها لا تقبل القسمة على \(3\) وآحاده لا تساوي \(3\) (\(1, 2, 4, 5, 7, \dots\)). أوجد العنصر رقم \(K\) من هذه السلسلة. القيمة \(K\) يمكن أن تكون عددًا صحيحًا بين \(1\) و\(1000\).
Noteملحوظة
العنصر رقم \(K\) في مصفوفة أو vector V هو V[K-1].
Solution
يمكننا ملاحظة أن العدد x يجب استبعاده من السلسلة إذا كان يقبل القسمة على \(3\) (x % 3 == 0) أو إذا كانت آحاده \(3\) (x % 10 == 3).
لحل المسألة، يمكننا إنشاء التسلسل كما يلي:
- أنشئ
vector\(V\) لتخزين التسلسل.
vector<int> v;- ابدأ حلقة عند \(1\) واستمر حتى يصبح حجم \(V\) يساوي \(1000\).
- في كل دورة، أضف العدد الحالي إلى \(V\) فقط إذا لم يكن قابلاً للقسمة على \(3\) ولا ينتهي بـ \(3\).
for (int i = 1; v.size() < 1000; i++) {
if (i % 3 != 0 && i % 10 != 3) {
v.push_back(i);
}
}بعد إنشاء السلسلة، يمكننا قراءة كل قيمة \(K\) وطباعة العنصر رقم \(K\) من vector \(V\).
int test_cases;
cin >> test_cases;
for (int i = 0; i < test_cases; i++) {
int k;
cin >> k;
cout << v[k - 1] << endl;
}