home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.programming      Programming issues that transcend langua      57,431 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 56,693 of 57,431   
   Tim Rentsch to Richard Harnden   
   Re: A little puzzle.   
   28 Nov 22 07:30:11   
   
   From: tr.17687@z991.linuxsc.com   
      
   Richard Harnden  writes:   
      
   > On 21/11/2022 20:45, Ben Bacarisse wrote:   
   >   
   >> I wonder if there are any real posters here?  Let's see...   
   >>   
   >> I came across a trivial programming task that must have been solved a   
   >> thousand times by other programmers, but it had never crossed my path   
   >> until yesterday.  I must be feeling my age because I made a real hash of   
   >> tackling it at first.  Anyway, I thought it might be of interest.   
   >>   
   >> Consider any ordered measure that "wraps round" -- bearings in degrees,   
   >> minutes in the hour, indeed hours in either the 12 or 24 hour clock.   
   >> The problem is to determine if a given value is in the sub-range   
   >> specified by a start and an en value.   
   >>   
   >> I was specifically concerned with integer values where the sub-range   
   >> includes the start value but excludes the end value.   
   >>   
   >> Though I am not sure this merits the term "puzzle", I suggest that   
   >> solutions be posted with some spoiler protection.  Do all the news   
   >> readers used by programmers (or ex programmers) all respect the presence   
   >> of a form-feed character...   
   >>    
   >> ... like this?  Because that's my favourite way, rather than posting   
   >> lots of dummy lines before the solution.   
   >   
   > I think this works ...   
   >   
   > int in_subrange(int range, int start, int end, int check)   
   > {   
   >     check %= range;   
   >   
   >     if (  ( end < start && (   
   >                (check >= 0 && check <= end)   
   >             || (check >= start && check < range)   
   >             )   
   >           )   
   >        || ( check >= start && check <= end )   
   >        )   
   >             return 1;   
   >   
   >     return 0;   
   > }   
      
   Have you thought about a case where the values of check, start,   
   and end are chosen from the interval -9000000000 to 9000000000?   
   How about the interval -18000000000 to 18000000000?   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca