Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เขียนโปรแกรมย้อนกลับตัวเลขในภาษา C++


โปรแกรมการกลับตัวเลขของตัวเลขจะสลับตำแหน่งของตัวเลขและกลับลำดับที่นั่น

สมมติให้เป็นตัวเลข abcde กลับเป็น edcba

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

อินพุต

n = 786521

ผลลัพธ์

125687

ในการกลับตัวเลขของตัวเลข เราจะนำแต่ละหลักของตัวเลขจาก MSB (หลักหน่วย) มาบวกกับตัวแปรตัวเลขย้อนกลับ หลังจากนี้หารจำนวนเดิมด้วย 10 และ reverse_number จะถูกคูณด้วย 10 ซึ่งจะทำได้จนถึง ตัวเลขกลายเป็น 0

กระบวนการซ้ำๆ นี้สามารถทำได้โดยสองวิธี คือ การวนซ้ำ และการเรียกซ้ำ เราจะสร้างโปรแกรมเพื่อสร้างภาพประกอบทั้งสองวิธี

ตัวอย่าง

วิธีที่ 1:วิธีการทำซ้ำ

#include <iostream>
using namespace std;
int reversDigitsIt(int n) {
   int reverseNumber = 0;
   while(n > 0){
      reverseNumber = reverseNumber*10 + n%10;
      n /= 10;
   }
   return reverseNumber;
}
int main() {
   int n = 4562;
   cout<<"The number is : "<<n<<endl;
   cout<<"Reverse of number is "<<reversDigitsIt(n);
   return 0;
}

ผลลัพธ์

The number is : 4562
Reverse of number is 2654

ตัวอย่าง

วิธีที่ 2:วิธีการแบบเรียกซ้ำ

#include <iostream>
using namespace std;
int reverseNumber = 0;
int numPos = 1;
void reversDigitsRec(int n) {
   if(n > 0){
      reversDigitsRec(n/10);
      reverseNumber += (n%10)*numPos;
      numPos *= 10;
   }
}
int main() {
   int n = 4562;
   cout<<"The number is : "<<n<<endl;
   reversDigitsRec(n);
   cout<<"Reverse of number is "<<reverseNumber;
   return 0;
}

ผลลัพธ์

The number is : 4562
Reverse of number is 2654