Solved

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

Posted on 2003-10-27
10
848 Views
Last Modified: 2011-09-20
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
{
      static BufferedReader keyboard =
                        new BufferedReader(new InputStreamReader(System.in));
      
      public static void main(String[] args) throws IOException
      {
            double firstNum, secondNum, n, square;
            
            n = 0;
            
            System.out.print("please enter an integer: ");
            System.out.flush();
            firstNum = Integer.parseInt(keyboard.readLine());
            
            System.out.print("please enter another one that is larger than the first integer: ");
            System.out.flush();
            secondNum = Integer.parseInt(keyboard.readLine());
            
            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
Comment
Question by:crystalfish0318
  • 5
  • 5
10 Comments
 
LVL 15

Accepted Solution

by:
jimmack earned 20 total points
ID: 9626075
See your previous questions for clues about the output.

For the uppercase letters:


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

Author Comment

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

public class ch5_num8_partE_SumOfSquareOfOddNumbers
{
      static BufferedReader keyboard =
             new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws IOException
      {
            int firstNum, secondNum, n, sum, rem;
            
            double result;
            
            System.out.print("please enter an integer: ");
            System.out.flush();
            firstNum = Integer.parseInt(keyboard.readLine());
            
            System.out.print("please enter another one that is larger than the first integer: ");
            System.out.flush();
            secondNum = Integer.parseInt(keyboard.readLine());
            
            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

by:jimmack
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
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Author Comment

by:crystalfish0318
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

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

firstNum++;
0
 

Author Comment

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

Expert Comment

by:jimmack
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

by:crystalfish0318
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
{
      static BufferedReader keyboard =
             new BufferedReader(new InputStreamReader(System.in));

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

            
            System.out.print("please enter an integer: ");
            System.out.flush();
            firstNum = Integer.parseInt(keyboard.readLine());
            
            System.out.print("please enter another one that is larger than the first integer: ");
            System.out.flush();
            secondNum = Integer.parseInt(keyboard.readLine());
            
            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

by:jimmack
ID: 9626407
Yes.

Try:

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

(It's a bit more descriptive)
0
 

Author Comment

by:crystalfish0318
ID: 9626411
thank you^^
0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
JDeveloper 12c for 32 bit 4 84
Checkbox and ListView in Android Layout 4 66
Error trying to install RTMT Win7 5 60
Java string replace 11 47
After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
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 learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…

778 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question