How to reverse a number

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

回答 (8 件)

Azzi Abdelmalek
Azzi Abdelmalek 2012 年 12 月 1 日
編集済み: Azzi Abdelmalek 2012 年 12 月 1 日

6 投票

a=8549
out=str2num(fliplr(num2str(a)))

3 件のコメント

Aritra Chatterjee
Aritra Chatterjee 2013 年 9 月 14 日
Great!!! Great!!!!
János Stenszky
János Stenszky 2018 年 5 月 14 日
Thanks!
Uchechukwu Obimma
Uchechukwu Obimma 2020 年 5 月 11 日
Thanks

サインインしてコメントする。

Roger Stafford
Roger Stafford 2014 年 11 月 21 日

3 投票

@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
Kunal Kabi 2017 年 6 月 8 日
Thank you sir because of you i got the idea @RogerStafford.
ABHAS BHATIA
ABHAS BHATIA 2018 年 1 月 14 日
Thanks for the solution @Jessica

サインインしてコメントする。

Kunal  Kabi
Kunal Kabi 2017 年 6 月 8 日
編集済み: Jan 2019 年 8 月 28 日

2 投票

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
Jan
Jan 2018 年 1 月 14 日
編集済み: Jan 2018 年 1 月 14 日

1 投票

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
José-Luis 2012 年 12 月 1 日

0 投票

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
Jessica 2014 年 11 月 21 日

0 投票

what if you aren't allowed to use any string variables, string related function, digitrevorder() and fliplr()??

1 件のコメント

Andrew Reibold
Andrew Reibold 2014 年 11 月 21 日
Then you can do divide by 10 tricks with rounding to save each digit, then rearrange after.

サインインしてコメントする。

Kunal  Kabi
Kunal Kabi 2017 年 6 月 8 日

0 投票

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
ANIRUDDHA 2022 年 9 月 6 日

0 投票

  1. 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 件のコメント

Walter Roberson
Walter Roberson 2022 年 9 月 6 日
This does not appear to be an answer to the question that was asked.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品

質問済み:

2012 年 12 月 1 日

コメント済み:

2022 年 9 月 6 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by