Author |
Topic: Add 32-bit Numbers (Read 1274 times) |
|
william wu
wu::riddles Administrator
Gender:
Posts: 1291
|
|
Add 32-bit Numbers
« on: Feb 4th, 2003, 9:37pm » |
Quote Modify
|
From Usenet: You have to add three 32-bit two's complement numbers using only one '+'. Other legal (C) operators are ! ~ & ^ | << >> but those can be used more than once. You may at most use 17 operators.
|
|
IP Logged |
[ wu ] : http://wuriddles.com / http://forums.wuriddles.com
|
|
|
Jeremiah Smith
Full Member
Beep!
Posts: 172
|
|
Re: Add 32-bit Numbers
« Reply #1 on: Feb 8th, 2003, 4:15pm » |
Quote Modify
|
Are parentheses considered operators for this problem? I can already see that I can't make any temporary variables, since = (assignment) is an operator itself and isn't on the list...
|
|
IP Logged |
|
|
|
Grimbal
wu::riddles Moderator Uberpuzzler
Gender:
Posts: 7527
|
|
Re: Add 32-bit Numbers
« Reply #2 on: May 29th, 2004, 3:29pm » |
Quote Modify
|
int add3(int a, int b, int c){ return (a^b^c) + ((a&(b|c)|b&c)<<1); }
|
|
IP Logged |
|
|
|
|