Best long riddles

cleanlogicmath

Mick and John were in a 100 meter race. When Mick crossed the finish line, John was only at the 90 meter mark. Mick suggested they run another race. This time, Mick would start ten meters behind the starting line. All other things being equal, will John win, lose, or will it be a tie in the second race?
John will lose again. In the second race, Mick started ten meters back. By the time John reaches the 90 meter mark, Mick will have caught up him. Therefore, the final ten meters will belong to the faster of the two. Since Mick is faster than John, he will win the final 10 meters and of course the race.
72.05 %
64 votes
cleanlogic

A boy was rushed to the hospital emergency room. The ER doctor saw the boy and said, "I cannot operate on this boy. He is my son." But the doctor was not the boy's father. How could that be?
The doctor was his mom.
72.00 %
166 votes
cleanlogicwhat am I

I'm a fruit. If you take away my first letter, I'm a crime. If you take away my first two letters, I'm an animal. If you take away my first and last letters, I'm a form of music. What am I?
Grape.
71.95 %
68 votes
cleanfunnylogic

A kind hearted person Mr. Rawat buy packed food at 3$/packet from United states and sells them at 1$/packet at Africa. After some time he becomes a millionaire. How come the guy become millionaire?
He started out as a billionaire, but lost so much money in his good works (by giving to poor people) that he became a millionaire.
71.93 %
93 votes
dirtyfunny

August was the name of a puppy who was always picking on larger animals. One day he got into an argument with a lion. The next day was the first day of September. Why?
Because that was the last of August.
71.93 %
93 votes
logiccleverstory

Many years ago a wealthy old man was near death. He wished to leave his fortune to one of his three children. The old man wanted to know that his fortune would be in wise hands. He stipulated that his estate would be left to the child who would sing him half as many songs as days that he had left to live.The eldest son said he couldn't comply because he didn't know how many days his father had left to live and besides he was too busy. The youngest son said the same thing. The man ended up leaving his money to his third child a daughter. What did his daughter do?
Every other day, the daughter sang her father a song.
71.90 %
97 votes
logicsimpleclean

A man had a book that was worth $40,000. There were only 2 books in existence. He threw it in the furnace, reducing it to a pile of soot. Why did he do this?
He destroyed the book because he has two, and by only having one, the value goes up.
71.88 %
55 votes
cleansimplelogic

A blind man walks into a hardware store to buy a hammer. There are hammers hanging behind the front desk, but obviously the blind man isn't able to see them. And yet a few minutes later, he happily walks out of the store, having just purchased a new hammer. How did he do it?
He walks up the the front desk where the clerk is working and says "I'd like to buy a hammer."
71.88 %
55 votes
logicmath

Two words are anagrams if and only if they contain the exact same letters with the exact same frequency (for example, "name" and "mean" are anagrams, but "red" and "deer" are not). Given two strings S1 and S2, which each only contain the lowercase letters a through z, write a program to determine if S1 and S2 are anagrams. The program must have a running time of O(n + m), where n and m are the lengths of S1 and S2, respectively, and it must have O(1) (constant) space usage.
First create an array A of length 26, representing the counts of each letter of the alphabet, with each value initialized to 0. Iterate through each character in S1 and add 1 to the corresponding entry in A. Once this iteration is complete, A will contain the counts for the letters in S1. Then, iterate through each character in S2, and subtract 1 from each corresponding entry in A. Now, if the each entry in A is 0, then S1 and S2 are anagrams; otherwise, S1 and S2 aren't anagrams. Here is pseudocode for the procedure that was described: def areAnagrams(S1, S2) A = new Array(26) A.initializeValues(0) for each character in S1 arrayIndex = mapCharacterToNumber(character) //maps "a" to 0, "b" to 1, "c" to 2, etc... A[arrayIndex] += 1 end for each character in S2 arrayIndex = mapCharacterToNumber(character) A[arrayIndex] -= 1 end for (i = 0; i < 26; i++) if A[i] != 0 return false end end return true end
71.88 %
55 votes
cleanfunnytricky

A hungry donkey was tied to a rope eight feet long. About thirty feet away there was a basket of fresh carrots. The donkey wanted to eat those carrots. How did he reach them?
It's not tied to anything else!
71.83 %
109 votes