boy it is a good thing this was not an English class. that spelling and miss used work are horrible. I am glad yall knew what I meant
help solving string question
    15 views (last 30 days)
  
       Show older comments
    
    Joseph Pauwels
 on 7 May 2014
  
    
    
    
    
    Answered: Joshua Amuga
 on 2 Nov 2016
            Durring my last semester, we were given a bonus quiz to write a function the received and numberical input and produced the revise as an output.
example a=123
b=321
we were not allowed to use any string variable or function. Any ideas now that the semester is over Id like to know what you think.
My original thought was to divide the input but the got harder with larger number as the function should receive any number
Accepted Answer
  Star Strider
      
      
 on 7 May 2014
        This works, but obviously only for integers:
a = 123;
% a = fix(rand*1E6)   % Test Integer
La = fix(log10(a));
x = a;
for k1 = La:-1:0
    d(k1+1) = fix(x/(10^k1));
    x = rem(x,10^k1);
end
v10 = 10.^(La:-1:0)';
Flipped_a = d*v10
The Flipped_a variable is the result. I tested it on other random integers as well.
3 Comments
  Star Strider
      
      
 on 7 May 2014
				The fix and rem functions are not string functions.
- The fix function rounds toward zero.
- The rem function (similar to mod) returns the remainder after division.
  Wesley Ooms
      
 on 8 May 2014
				fix, log10, rand, and rem are functions. The way i read the question is that no function is allowed.
More Answers (4)
  Carlos
      
 on 7 May 2014
        a=[1 2 3 4 5];
>> b=zeros(1,length(a));
count=1;
l=length(a);
while(count<=l)
b(count)=a(l+1-count);
count=count+1;
end
  Wesley Ooms
      
 on 7 May 2014
        totally not optimized, but this will do the trick:
 clear a b
 a=32385
 i=1
 while floor(a/10)
 b(i)=a-floor(a/10)*10
 i=i+1   
 a =floor(a/10)
 end
 b(i)=a
 d=1
 e=0
 for c=0:numel(b)-1
    e=e+d*b(end-c)   
    d=d*10
 end
5 Comments
  Wesley Ooms
      
 on 8 May 2014
				
      Edited: Wesley Ooms
      
 on 8 May 2014
  
			that is because you
do c=-1:(a/1); instead of c=-1:(a/10);
the following must work: (but i admit it is not optimized for speed)
    function b=swapnumber(a)
    b = 0;
    while a
        c = -1:a/10;
        c = c(end); 
        b = (b+a-c*10)*10;
        a = c;
    end
    b = b/10;
  Wesley Ooms
      
 on 8 May 2014
				the following code also works but is faster for large numbers since it predetermines the size of the number
    function b=swapnumber(a)
    b=0;d=0;while a>1;a=.1*a;d=d+1;end
    for i=0:d;c=0:a*10;c=c(end);b=b+c*10^i;a=a*10-c;end
  Sagar Damle
      
 on 7 May 2014
        
      Edited: Sagar Damle
      
 on 8 May 2014
  
      I think the code which I am going to put here is the standard code to reverse a number.(This code is used in C language,of course,according to its own syntax!)Also,it is easy to understand.Remember this code,I think it is very helpful!
a = 126986;
 b = a;    % Save value of "a" in new variable "b". 
 reverse = 0;
 while b > 0      % OR  while b ~= 0  (Both 'while' statements are same.)
     r = rem(b,10);
     reverse = reverse * 10 + r;
     b = floor(b/10);
 end
 a
 reverse
0 Comments
  Joshua Amuga
 on 2 Nov 2016
        IVP :=ode({y''(x)+4*y'(x)+3*y,y(0)=3,y'(0)=4},y(x)); Undefined function or variable 'IVP'. this is what i got
0 Comments
See Also
Categories
				Find more on Simulink Environment Customization in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




