次のコードを作成しました。
A = [0:1:999].*[0:1:999]';
B = mat2str(A);
B(B == fliplr([B]))
そして、回文数でフィルタリングすることを望んでいました(99、101、97479などのように、前後に同じ)。パリンドロームではない数値を取得しています。コードの何が問題になっていますか?
次のコードを作成しました。
A = [0:1:999].*[0:1:999]';
B = mat2str(A);
B(B == fliplr([B]))
そして、回文数でフィルタリングすることを望んでいました(99、101、97479などのように、前後に同じ)。パリンドロームではない数値を取得しています。コードの何が問題になっていますか?
これを試して:
A = [0:1:999].*[0:1:999];
B = str2num( fliplr( num2str(A')))';
palNums = A(A == B);
palNums
現在、回文数のみを含める必要があります。
次のように実行できます。
A=10:999999; %I am assuming you want to start from 10 since a single digit will always be palindrome.
for i=1:length(A)
digits1 = sscanf(strrep(num2str(A(i),10),'.',''),'%1d')'; %If you want to support
%numbers more than 10 digits, replace above number accordingly.
digits2=fliplr(digits1);
if digits1==digits2
palindrome(i)=1;
fprintf('A palindrome\n');
else
palindrome(i)=0;
fprintf('Not a palindrome\n');
end
end