How to reverse a number
60 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
回答(8 个)
Roger Stafford
2014-11-21
@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 个评论
Kunal Kabi
2017-6-8
编辑:Jan
2019-8-28
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
0 个评论
José-Luis
2012-12-1
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 '));
0 个评论
Jessica
2014-11-21
what if you aren't allowed to use any string variables, string related function, digitrevorder() and fliplr()??
1 个评论
Andrew Reibold
2014-11-21
Then you can do divide by 10 tricks with rounding to save each digit, then rearrange after.
Kunal Kabi
2017-6-8
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
0 个评论
ANIRUDDHA
2022-9-6
- 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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!