programming forums Java Java JSRs Mobile Certification Databases Caching Books Engineering Languages Frameworks Products This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

# Quick problem to wake up your brain

Brian Legg
Ranch Hand
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.

yousef atya
Greenhorn
Posts: 3
I think you have to sort the array , then you can find which number dose not exist ;

Paul Clapham
Sheriff
Posts: 22379
42
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
Posts: 488
If 5,050 is equal to 100! then you are correct Paul

Mike Simmons
Ranch Hand
Posts: 3090
14
Well, 100! would be a somewhat larger number. But we know what you meant.

Brian Legg
Ranch Hand
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
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>

Paul Clapham
Sheriff
Posts: 22379
42
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
Posts: 488
Nice work Sridhar

Sagar Rohankar
Ranch Hand
Posts: 2907
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

George Harris
Ranch Hand
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
Sheriff
Posts: 24217
38
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
Posts: 3090
14
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.