I assume your reply is a troll too ?
You're going to create some fabulously bad electronics your way.No different for code either.
Graham
I assume your reply is a troll too ?
You're going to create some fabulously bad electronics your way.No different for code either.
Graham
Well, I think when he said "reverses a string in place", he meant the former rather than the latter, and probably implied without creating a temporary copy.
Hell is more interesting, and useful, but not a nice place.
-- Dirk The Consensus:- The political party for the new millenium http://www.theconsensus.org
bool IsPowerOf2(unsigned val) { unsigned i=val, j=1; while (i >>= 1) j*=2; return (j == val); }
Best regards, Spehro Pefhany
-- "it\'s the network..." "The Journey is the reward" speff@interlog.com Info for manufacturers: http://www.trexon.com Embedded software/hardware/analog Info for designers: http://www.speff.com
how about this, untested, uncompiled c++
void rev3( const char* str, int l = -1 ) { if( l == -1 ) l = strlen( str )-1;
if( l > 0 ) { char c = str[l]; str[l] = *str; *str = c; // swap rev3( str+1, l-2 ); } }
the nice thing about it is that one does not have to supply length, start or fin for initial invocation. Not that I think that recursion is appropriate for this problem.
In your example, the user would need to supply strlen( l ) - 1 for fin, for the initial call. And in my example, the user would only supply str.
A bonus question: how to swap two integer (or char) values without using a temporary variable? In any language? Without any function calls?
i
very nice story about using integer arithmetic.
In place. Try to do it so that you could say afterwards, that was a ncie solution.
i
You would get the job, yes, I mean you would pass this test. I must note, however, that you would get a compiler warning about assigning integer to a char, and also you do not need both c and d. The last return statement is also not needed. You are definitely in the top 90% of computer programmers, no kidding.
i
I guess your fingers did the typing "const char *" without thinking. :)
i
I did the same thing, rotflmao!
i
A perfect answer! You get an A+!
i
:) Nasty things, those non-const pointers.
I meant naked pointers in general.
I suppose you should also ding me for .
It's a valid answer, and meaningful of itself. The follow up questions would bring it back to where we started.
If you're not tired of the game yet, write:
// return true if val is an integer power of 2; false otherwise. bool IsPowerOf2(unsigned val);
Gak! :) Yeah, different context.
#include
void reverse(char string[]) { char c; int i,j;
for (i=0, j=strlen(string)-1; i < j; i++,j--) c = string[i], string[i] = string[j], string[j]=c; }
What does it pay? When do I start?
Umm... I think you missed the implied smiley (;0~)
Bob
"Mike Young" wrote in news:kaqqf.2184$ snipped-for-privacy@newssvr11.news.prodigy.com:
Can I do it in Ada? I can do C++, but I'm not too fond of it. Note that Ada doesn't have an unsigned type, so I'm using an integer instead. The code would be the same regardless.
/
function IsPowerOf2(val: integer) return boolean is result: integer; begin result := val rem 2; if result = 0 then return true; else return false; end if; end IsPowerOf2;
Puckdropper
-- www.uncreativelabs.net Old computers are getting to be a lost art. Here at Uncreative Labs, we still enjoy using the old computers. Sometimes we want to see how far a particular system can go, other times we use a stock system to remind ourselves of what we once had. To email me directly, send a message to puckdropper (at) fastmail.fm
great job!
I wish that people who we see could do as good job as you did.
i
here's my try, could be a little faster, untested
bool IsPowerOf2(unsigned int val) { int count = 0; while( val ) { if( val & 0x1 ) { count++; if( count > 1 ) return false; } val = val >> 1; } return cunt == 1; }
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.