finding if a digit repeats itself an equally at 2 different numbers
정보
이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.
이전 댓글 표시
i got an assignment to see if the digit "d" repeats itself equally in "n1" and "n2" without using loops and using recursive function only. I've managed to find the difference between these numbers (the difference between the times 'd' appears in "n1" and in "n2"). now i have to return a logic "1" or "0". "1" if the difference is 0. "0" if the difference is not 0.
댓글 수: 6
David Shapiro
2015년 3월 11일
편집: dpb
2015년 3월 11일
Adam
2015년 3월 11일
What is your question then?
David Shapiro
2015년 3월 11일
Guillaume
2015년 3월 11일
What is actually allowed in your function? Because the following does not use any loop (or recursive function):
r = sum(num2str(n1)-'0' == d) == sum(num2str(n2)-'0' == d)
David Shapiro
2015년 3월 11일
Guillaume
2015년 3월 11일
Same without num2str. Still does not need recursion:
decompose = @(n) floor(mod(n, 10.^(1:ceil(log10(n)))) ./ 10.^(0:ceil(log10(n)-1)));
r = sum(decompose(n1) == d) == sum(decompose(n2) == d)
답변 (2개)
Adam
2015년 3월 11일
r = ~x
should do the trick if x is the difference that can be 0 or greater
댓글 수: 6
David Shapiro
2015년 3월 11일
Adam
2015년 3월 11일
Simplest option is probably to call this from inside another function. Are you only allowed to use the one recursive function and nothing else?
David Shapiro
2015년 3월 11일
Adam
2015년 3월 11일
I guess you could put a recursion level counter in then and only convert to logical if you are at the top level of recursion. It's ugly, but then recursion is pretty ugly in general. I got lost in a recursive function yesterday and gave up in the end!
That's the only way you could do it using a single function that recurse on itself since you need to keep track of all digits at all level of recursion.
This is kind of against the spirit of recursion though.
Recursion is ill suited to this problem anyway.
David Shapiro
2015년 3월 11일
편집: Image Analyst
2015년 3월 11일
0 개 추천
댓글 수: 1
Adam
2015년 3월 11일
Urgh, 3 explicit hasty returns and 5 elseif clauses...if I could use an emoticon it'd be throwing up!
이 질문은 마감되었습니다.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
