0
Hello, can you explain to me why we used 10? I could not understand the solution to the question
#include <iostream> using namespace std; int main() { // sample number int num ; cin>>num; //reverse the number int r, temp; int sum = 0; for(temp = num; num != 0; num /= 10) { r = num % 10; sum = sum * 10 + r; } //compare the numbers if(temp == sum) cout << temp << " is a palindrome"; else cout << temp << " is NOT a palindrome"; return 0; }
2 ответов
+ 1
Soneta
10 is used to get reminder and division and multiplication to get reverse number.
Why divide with 10 because we want to break loop at some point.
We get reminder then multiply with 10 in previous sum then add that reminder value to get new sum.
This process will go until we don't break loop and get reversed number
Explanation with example:
123 here we have to get reminder first then multiply with 10
So 123 % 10 = 3 and sum * 10 + 3 = 3
Now 123 / 10 = 12
Now new number is 12
So 12 % 10 = 2 and sum * 10 + 2 = 3 * 10 + 2 = 32
Remember previous sum was 3
Now new sum is 32
Now divide 12 by 10 so 12 / 10 = 1
Now new number is 1
So 1 % 10 = 1 and sum * 10 + 1 = 32 * 10 + 1 = 320 + 1 = 321
Remember previous sum was 32 now new sum is 321 which is reverse number of 123
So 123 == 321 which is false means NOT a palindrome
+ 1
A͢J
Thank you so much