aspose file tools*
The moose likes Programming Diversions and the fly likes Quick problem to wake up your brain Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Other » Programming Diversions
Bookmark "Quick problem to wake up your brain" Watch "Quick problem to wake up your brain" New topic
Author

Quick problem to wake up your brain

Brian Legg
Ranch Hand

Joined: Nov 07, 2008
Posts: 488
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
I think you have to sort the array , then you can find which number dose not exist ;
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18570
    
    8

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
If 5,050 is equal to 100! then you are correct Paul
Mike Simmons
Ranch Hand

Joined: Mar 05, 2008
Posts: 3014
    
  10
Well, 100! would be a somewhat larger number. But we know what you meant.
Brian Legg
Ranch Hand

Joined: Nov 07, 2008
Posts: 488
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
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
Bartender

Joined: Oct 14, 2005
Posts: 18570
    
    8

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
Nice work Sridhar
Sagar Rohankar
Ranch Hand

Joined: Feb 19, 2008
Posts: 2902
    
    1

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
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: 24185
    
  34

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: 3014
    
  10
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.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Quick problem to wake up your brain