fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4.  
  5. unsigned int bitwiseor(unsigned int a, unsigned int b){
  6. if (a==b)
  7. return a;
  8. unsigned final = 0;
  9. unsigned rev = 0;
  10. while(b){
  11. final*=2;
  12. if (a%2==1 || a!=b)
  13. final++;
  14. a/=2;
  15. b/=2;
  16. }
  17. while(final){
  18. rev *= 2;
  19. rev += final % 2;
  20. final/=2;
  21. }
  22. return rev;
  23. }
  24.  
  25. int dumb(int a, int b)
  26. {
  27. int z=0;
  28.  
  29. while(a<=b) z|=a++;
  30. return z;
  31. }
  32.  
  33. int main(int argc, char *argv[])
  34. {
  35. int a,b;
  36. for(a=0;a<1000;a++) {
  37. for(b=a;b<1000;b++) {
  38. int z1=dumb(a,b);
  39. int z2=bitwiseor(a,b);
  40. if(z1!=z2) {
  41. printf("fail %d %d %d %d\n",a,b,z1,z2);
  42. }
  43. }
  44. }
  45. return 0;
  46. }
Success #stdin #stdout 0.06s 15240KB
stdin
Standard input is empty
stdout
Standard output is empty