Solved

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

Posted on 2003-10-27
10
930 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

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

[Webinar] Code, Load, and Grow

Managing multiple websites, servers, applications, and security on a daily basis? Join us for a webinar on May 25th to learn how to simplify administration and management of virtual hosts for IT admins, create a secure environment, and deploy code more effectively and frequently.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
sql import cannot be resolved jsp 3 110
import as existing maven project 3 71
Netbeans and org.apache.commons.lang3 issue 3 50
Java array sort 10 58
Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
The viewer will learn how to implement Singleton Design Pattern in Java.
Suggested Courses

742 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