フィルターのクリア

How to reverse a number

28 ビュー (過去 30 日間)
sss dzu
sss dzu 2012 年 12 月 1 日
コメント済み: Walter Roberson 2022 年 9 月 6 日
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 日
a=8549
out=str2num(fliplr(num2str(a)))
  3 件のコメント
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 日
@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 日
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 日
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 日
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 日
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 日
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 日
  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.

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

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by