Author
Quick problem to wake up your brain
Brian Legg
Ranch Hand
Joined: Nov 07, 2008
Posts: 488
posted May 29, 2009 10:25:32

0

There are 99 unique numbers in an array. All numbers are from 1 to 100 with 1 random number missing. The numbers are not in order.
How can you figure out what the missing number is if your only allowed to pass through the array 1 time?
I realize this is probably too easy for most of you but this should wake up your brain on a Friday morning. Please don't post the answer if you've heard this before
Bonus: Post your answer in Java code - only 4 lines needed for my solution including the print statement which shows the answer.
SCJA
~Currently preparing for SCJP6
yousef atya
Greenhorn
Joined: May 29, 2009
Posts: 3
posted May 29, 2009 10:56:48
0

I think you have to sort the array , then you can find which number dose not exist ;
Paul Clapham
Sheriff
Joined: Oct 14, 2005
Posts: 19973
posted May 29, 2009 11:28:18
0

I don't think I heard that before, but you just add up the 99 numbers and subtract the total from 5050. I know this is "Programming Diversions" but as you imply, the programming is trivial once you know what to do.
Brian Legg
Ranch Hand
Joined: Nov 07, 2008
Posts: 488
posted May 29, 2009 11:59:09

0

If 5,050 is equal to 100! then you are correct Paul
Mike Simmons
Ranch Hand
Joined: Mar 05, 2008
Posts: 3028
posted May 29, 2009 13:27:23
0

Well, 100! would be a somewhat larger number. But we know what you meant.
Brian Legg
Ranch Hand
Joined: Nov 07, 2008
Posts: 488
posted May 29, 2009 13:45:00

0

Doh.... what's the mathematical sign for 100+99+98....+1 ? I thought it was 100! but I guess that is 100 * 99 * 98, etc.
Sridhar Gudipalli
Ranch Hand
Joined: Nov 02, 2005
Posts: 120
posted May 29, 2009 13:56:05
0

package com.my;
public class SumDemo {
int digits[]= new int[99];
public SumDemo(int missingValue) {
//Initialize the array with 98 unique values.
for(int i=0;i<99; i++){
if(i==missingValue-1){
continue;
}
this.digits[i]=i+1;
}
}
public static void main(String [] args) {
SumDemo sDemo = new SumDemo(5);
int actualTotalValue = (99 * (99+1))/2; //sum of n natural numbers (n*(n+1))/2
int arrayTotalValue=0;
for(int i=0; i<sDemo.digits.length;i++){
arrayTotalValue += sDemo.digits[i];
}
System.out.println(" Missing value is: "+(actualTotalValue - arrayTotalValue));
}
}
///Output: Missing value is: 5>
Sridhar Gudipalli |SCJP 6.0
SCWCD objectives
Paul Clapham
Sheriff
Joined: Oct 14, 2005
Posts: 19973
posted May 29, 2009 15:01:41
0

Brian Legg wrote: Doh.... what's the mathematical sign for 100+99+98....+1 ?

There isn't one as far as I know.
Brian Legg
Ranch Hand
Joined: Nov 07, 2008
Posts: 488
posted May 29, 2009 15:02:24

0

Nice work Sridhar
Sagar Rohankar
Ranch Hand
Joined: Feb 19, 2008
Posts: 2904
posted May 29, 2009 22:38:44
0

Paul Clapham wrote:
Brian Legg wrote: Doh.... what's the mathematical sign for 100+99+98....+1 ?

There isn't one as far as I know.

No direct formula or symbol, but its looks like an Arithmetic Progression and can sum as :
Sum = n(a1 + a2)/2 = 100(1 + 100)/2 = 5050
And Sridhar , please quote your source code !
[LEARNING bLOG] | [Freelance Web Designer] | [and "Rohan" is part of my surname]
George Harris
Ranch Hand
Joined: May 05, 2003
Posts: 84
posted Jun 01, 2009 09:26:41

0

Brian Legg wrote: Doh.... what's the mathematical sign for 100+99+98....+1 ? I thought it was 100! but I guess that is 100 * 99 * 98, etc.

Isn't it something like :
100
Σ b
b=1
Ernest Friedman-Hill
author and iconoclast
Marshal
Joined: Jul 08, 2003
Posts: 24199
posted Jun 01, 2009 09:52:15
0

George Harris wrote:
Brian Legg wrote: Doh.... what's the mathematical sign for 100+99+98....+1 ? I thought it was 100! but I guess that is 100 * 99 * 98, etc.

Isn't it something like :

100

Σ b

b=1

Yes, that's what I would write.
Mike Simmons
Ranch Hand
Joined: Mar 05, 2008
Posts: 3028
posted Jun 01, 2009 16:24:59
0

Well, we can also write the product of the first 100 positive integers as
100
∏ n
n = 1
But there's also a single symbol for this, the factorial operator. There's no such single symbol for a sum, as far as I know.
subject: Quick problem to wake up your brain