简体   繁体   中英

Print odd numbers in a descending order

The program needs to take an odd number and output it in a descending order For example: if the input is 11 the output needs to be 11 , 9 , 7 , 5 , 3, 1.

I tried using a for loop but I can only seem to get it to work with even numbers not odd numbers

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    int number = input.nextInt();

    for (int i = number - 1; i >= 0; i--) {

        if (i % 2 == 0) {
            int descend = i;
            System.out.println(descend + " ");
        }
    }
}

The output is the number in descending order but as even only. If I add a 1 into the descend variable the numbers would seem to descend in an odd manner but its not ideal.

This line returns true if the number is even:

if (i % 2 == 0) {

If you want to know when the number is odd:

if (i % 2 != 0) {

Also, why are you starting your count at 1 less than the input value:

int i = number - 1;

I think you want to do this:

for (int i = number; i > 0; i--) {  // tests for numbers starting at the input and stopping when i == 0

Asking if the number % 2 is equal to zero is basically asking if the number is even, so what you really have to do is ask if the number % 2 is not equal to zero, or equal to 1

if (i % 2 != 0) {
    int descend = i;
    System.out.println(descend + " ");
}

Also, there's no need to subtract 1 from the user input so your for loop can be written like this

for (int i = number; i >= 0; i--) {

    if (i % 2 == 0) {
        int descend = i;
        System.out.println(descend + " ");
    }
}
 public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    System.out.print("Enter an an odd number: ");
    int number = input.nextInt();
    while(number%2==0){
        System.out.print("Number must be odd number:" +
                "(Ex:1, 3,5)\nTry again: ");
        number=input.nextInt();
    }

    for (int i = number; i >= 0; i--) {
        if(number%2!=0){
            System.out.println(number);}
        number-=1;
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM