Solved

# use while loop to output the sum of the square of odd numbers

Posted on 2003-10-27
783 Views
First, i prompt the user to input 2 integers: firstNum & secondNum (firstNum must be less than secondNum)
this is easy.
then,
i have to output the sum of the square of odd numbers between these two integers,
so i write the codes like this:

import java.io.*;
import java.util.*;
import java.math.*;

public class OddSquare
{

public static void main(String[] args) throws IOException
{
double firstNum, secondNum, n, square;

n = 0;

System.out.flush();

System.out.print("please enter another one that is larger than the first integer: ");
System.out.flush();

while(firstNum < secondNum)
{
if(firstNum%2 == 0)
{
firstNum = firstNum + 2;
square = Math.pow(firstNum, 2);
System.out.print(square + " ");
}
else
{
firstNum = firstNum + (2*n + 1);
n++;
square = Math.pow(firstNum, 2);
System.out.print(square + " ");
}
}
}
}

i input 3 and 17, then the ouput is unexpected:
"16.0 36.0 64.0 100.0 144.0 196.0 256.0 324.0"

why?
i don't know which part i did wrong?

by the way,
can anyone give me a hint of how to "output all uppercase letters"?

thanks
0
Question by:crystalfish0318
• 5
• 5

LVL 15

Accepted Solution

jimmack earned 20 total points
ID: 9626075

For the uppercase letters:

for (char i = 'A'; i <= 'Z'; i++)
{
System.out.print(i + " ");
}
System.out.println();
0

Author Comment

ID: 9626222
import java.io.*;
import java.math.*;
import java.util.*;

public class ch5_num8_partE_SumOfSquareOfOddNumbers
{

public static void main(String[] args) throws IOException
{
int firstNum, secondNum, n, sum, rem;

double result;

System.out.flush();

System.out.print("please enter another one that is larger than the first integer: ");
System.out.flush();

rem = firstNum % 2;

while (++firstNum < secondNum)
{
if (firstNum % 2 != 0)
result = Math.pow(firstNum,2);
System.out.println(result + " ");
firstNum++;
}
}
}

there's still one error on the "result".......................
0

LVL 15

Expert Comment

ID: 9626243
You're missing some braces and you are incrementing firstNum in two places.

Try the following:

while (firstNum < secondNum)
{
if (firstNum % 2 != 0)
{
result = Math.pow(firstNum,2);
System.out.println(result + " ");
}
firstNum++;
}

0

Author Comment

ID: 9626280
input:
3
17

the output becomes:
9.0
25.0
49.0
.
.
.
.
225.0

the "9.0" shouldn't appear..................
cause 3 isn't between 3 and 17.................
0

LVL 15

Expert Comment

ID: 9626293
That's OK.  Just add the following line before the "while"

firstNum++;
0

Author Comment

ID: 9626310
darn! i should have known this.
thank you so much, jimmack
0

LVL 15

Expert Comment

ID: 9626345
;-)

Don't forget, your question wants the "sum" of the squares.

Create another variable:

double squareSum = 0.0;

Then, inside the loop, between "result = " and "System.out...", do

squareSum += result;

0

Author Comment

ID: 9626400
/*
*Filename:    ch5_num8_partE_SumOfSquareOfOddNumbers
*Versoon:     v1.0
*Description: This program uses a while loop to:
*                 1) Prompt the user to input two integers: firstNum and secondNum.
*                   2) Output the sum of the square of odd numbers between firstNum
*                          and secondNum.
*Author:         Daniel Yen-Chung Chen
*Created on:  October 22, 2003
*/

import java.io.*;
import java.math.*;
import java.util.*;

public class ch5_num8_partE_SumOfSquareOfOddNumbers
{

public static void main(String[] args) throws IOException
{
int firstNum, secondNum, n, sum, rem;

double result;

double squareSum = 0.0;

System.out.flush();

System.out.print("please enter another one that is larger than the first integer: ");
System.out.flush();

rem = firstNum % 2;

firstNum++;

while (firstNum < secondNum)
{
if (firstNum % 2 != 0)
{
result = Math.pow(firstNum,2);
squareSum += result;
System.out.println(result + " ");
}

firstNum++;
}

}
}

............
now the output is:
25.0
49.0
81.0
121.0
169.0
225.0
shouldn't i add the "System.out.println(squareSum);" after the while loop?
0

LVL 15

Expert Comment

ID: 9626407
Yes.

Try:

System.out.println("Sum of squares = " + squareSum);

(It's a bit more descriptive)
0

Author Comment

ID: 9626411
thank you^^
0

## Featured Post

### Suggested Solutions

Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to aâ€¦
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
The viewer will learn how to implement Singleton Design Pattern in Java.