สมมติว่าเรามีตัวเลข n Amal ให้หินแก่ Bimal และเขาให้หินมากกว่าหนึ่งครั้ง แต่ในการย้ายครั้งเดียวถ้า Amal ให้ k ก้อนหิน ในการย้ายครั้งต่อไป เขาไม่สามารถให้ k ก้อนหินได้ ดังนั้นหินที่ได้รับในการเคลื่อนไหวครั้งเดียวจะต้องแตกต่างจากการย้ายครั้งก่อน เราต้องนับจำนวนครั้งที่ Amal สามารถมอบก้อนหินให้ Bimal ได้
ดังนั้น หากอินพุตเป็นเหมือน n =4 ผลลัพธ์จะเป็น 3 เพราะ 1 สโตน ตามด้วย 2 สโตน และอีก 1 สโตน
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
return (n * 2 + 1) / 3
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include <bits/stdc++.h> using namespace std; int solve(int n){ return (n * 2 + 1) / 3; } int main(){ int n = 4; cout << solve(n) << endl; }
อินพุต
4
ผลลัพธ์
3