โปรแกรมการกลับตัวเลขของตัวเลขจะสลับตำแหน่งของตัวเลขและกลับลำดับที่นั่น
สมมติให้เป็นตัวเลข 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