How to reverse a number
Show older comments
Hi, I want to reverse a number, not a vector, like 8549 to 9458. I used fliplr , or flipud, or y = x(end:-1:1), They just work for row vector. Please, help. Thank you
Answers (8)
Azzi Abdelmalek
on 1 Dec 2012
Edited: Azzi Abdelmalek
on 1 Dec 2012
a=8549
out=str2num(fliplr(num2str(a)))
3 Comments
Aritra Chatterjee
on 14 Sep 2013
Great!!! Great!!!!
János Stenszky
on 14 May 2018
Thanks!
Uchechukwu Obimma
on 11 May 2020
Thanks
Roger Stafford
on 21 Nov 2014
@Jessica: Let x be a non-negative integer. Then y will have the decimal digits of x in reversed order.
y = 0;
while x > 0
t = mod(x,10);
y = 10*y+t;
x = (x-t)/10;
end
2 Comments
Kunal Kabi
on 8 Jun 2017
Thank you sir because of you i got the idea @RogerStafford.
ABHAS BHATIA
on 14 Jan 2018
Thanks for the solution @Jessica
Kunal Kabi
on 8 Jun 2017
Edited: Jan
on 28 Aug 2019
If you want to find palindrome numbers between two range here is the answer
clc;
clear all;
close all;
num=input('Enter first range:');
num1=input('Enter second range:');
for i=num:num1
temp=i;
reverse=0;
while temp > 0
t = mod(temp,10);
reverse = 10*reverse+t;
temp = (temp-t)/10;
end
if i==reverse
fprintf('Number is palindrome. %d\n',reverse);
end
end
A vectorized version of Roger's method:
n = 8549;
d = 10 .^ (0:floor(log10(n))); % [1 10, 100, 1000]
v = rem(floor(n ./ d), 10); % The vector of digits
r = v * flip(d).' % Vector multiplication with [1000, 100, 10, 1]
José-Luis
on 1 Dec 2012
A vectorized, faster alternative
For integers:
your_answer = flipud(sscanf(fliplr(sprintf('%d ',a)),'%d '));
And floating point:
your_answer = flipud(sscanf(fliplr(sprintf('%f ',a)),'%f '));
Example:
a=randi(115422,10000,1);
your_val = flipud(sscanf(fliplr(sprintf('%d ',a)),'%d '));
Jessica
on 21 Nov 2014
0 votes
what if you aren't allowed to use any string variables, string related function, digitrevorder() and fliplr()??
1 Comment
Andrew Reibold
on 21 Nov 2014
Then you can do divide by 10 tricks with rounding to save each digit, then rearrange after.
Kunal Kabi
on 8 Jun 2017
Here is your answer
clc;
clear all;
close all;
num=input('Enter a number:');
num1=num;
reverse=0;
while num1 > 0
t = mod(num1,10);
reverse = 10*reverse+t;
num1 = (num1-t)/10;
end
reverse
num
if num==reverse
disp('Number is palindrome.');
else
disp('Number is not palindrome');
end
ANIRUDDHA
on 6 Sep 2022
0 votes
- Using function statement, find out the sum of the inverse of any two numbers, a, b. Choose any value of a and b to run program?
1 Comment
Walter Roberson
on 6 Sep 2022
This does not appear to be an answer to the question that was asked.
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!