Finding decimal values without mod

2 vues (au cours des 30 derniers jours)
Jose Grimaldo
Jose Grimaldo le 2 Avr 2020
Is it possible or is there any way to find a value in an array that is a decimal without using mod(or any other function)?
  5 commentaires
KALYAN ACHARJYA
KALYAN ACHARJYA le 2 Avr 2020
Modifié(e) : KALYAN ACHARJYA le 2 Avr 2020
"For example, i want to separate the odd and even integers. I know there is easier ways,but i cant use functions only loops. (its a hw problem)"
You asked for with loop and without mod function, you can do multiple ways-
A=[1; 2; 3; 4; 5; 6; 7; 8]
m=1;n=1;
for i=1:length(A)
if rem(A(i),2)==0
EvenV(m)=A(i); % I want to store the Even integers
m=m+1;
else
OddV(n)=A(i); % i want to store the odd integers
n=n+1;
end
end
EvenV
OddV
James Tursa
James Tursa le 2 Avr 2020
You are going to have to use some functions for this. Even the / you are currently using is a function. Which functions are explicitly forbidden?

Connectez-vous pour commenter.

Réponses (1)

Ameer Hamza
Ameer Hamza le 2 Avr 2020
Right now, this is the only way I can think of to detect even and odd numbers without using any rounding functions and just a while loop. I suspect there might be more efficient solutions.
A=[1; 2; 3; 4; 5; 6; 7; 8];
Evens = [];
Odds = [];
for i=1:numel(A)
x = A(i);
tf = isEven(x);
if tf
Evens = [Evens x];
else
Odds = [Odds x];
end
end
function tf = isEven(x)
x = abs(x);
while true
x = x - 2;
if x == 0
tf = 1;
return
elseif x < 1
tf = 0;
return
end
end
end

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by