ในปัญหานี้เราได้รับจำนวนเต็มสามจำนวน N, A และ B มีบุคคลที่ยืนอยู่ที่พิกัด 0 การเคลื่อนไหว
ก้าวไปทางขวาแล้วก้าว B ไปทางซ้าย . ถูกต้องแล้วละครับ งานของเราคือพิมพ์ตำแหน่งสุดท้ายขององค์ประกอบหลังจากที่ N เคลื่อนที่
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
ป้อนข้อมูล − N =4, A =3, B =1
ผลผลิต −
คำอธิบาย −
1st move -> right 3, +3 2nd move -> left 1, -1 3rd move -> right 3, +3 4th move -> left 1, -1. Position after 4 moves, +3-1+3-1 = 4.
เพื่อแก้ปัญหานี้ เราต้องค้นหาขั้นตอนทั้งหมดที่บุคคลนั้นทำ การเคลื่อนไหวขวาในเชิงบวกและการเคลื่อนไหวซ้ายเป็นลบ การเคลื่อนไหวคี่ทั้งหมดจะถูกดำเนินการทางขวาและการเคลื่อนไหวแบบคู่จะถูกดำเนินการทางซ้าย
ขั้นตอนทั้งหมดจะคำนวณตามสูตร
Steps = [((n+1)/2)*a - (n/2)*b]
ตัวอย่าง
โปรแกรมแสดงภาพประกอบของโซลูชันของเรา
#include <iostream> using namespace std; void finalPosition(int n, int a, int b) { int steps = {((n + 1)/2)*a - (n/2)*b}; cout<<steps; } int main() { int N=4, A=3, B=1; cout<<"The final position of the person after "<<N<<" steps is "; finalPosition(N,A,B); return 0; }
ผลลัพธ์
The final position of the person after 4 steps is 4