2016-10-13 10 views
1

接尾辞を付けるための提案はありますか?序数標識の接尾辞

私は自分のコードの次の出力を提供することに取り組んでいる:

は整数(1-46)を入力します:フィボナッチ数列で6 第六の数は次のとおりです。8

私は //if()がどこにあるかと思ってい

import java.util.*; 

public class Somethingpart2 { 

    public static void main(String[] args) { 

     Scanner kbd = new Scanner(System.in); 

     //Variable Declaration 
     int number; 
     long Fibnumber; 


     Boolean accepted, limit; 

     //Beginning of user input for the Fibonacci sequence 
     System.out.print("Enter an integer (1-46): "); 
     number = kbd.nextInt(); 

     Fibnumber = Math.round(Math.pow((1+Math.sqrt(5))/2, number)/Math.sqrt(5)); 
     accepted = number >= 1 && number <= 46; 
     limit = number == Fibnumber; 


     if (accepted) { 
      do { 
       System.out.println("The " + number +" number in the Fibonacci sequence is: "+Fibnumber); 
       //if()) 
       return; 
      } 
      while (limit); 
     } 
     else 
      System.out.println("Not a valid number."); 

、私はwを考え出すことができる:以下

は、私がこれまでに完了しているものです例えば.containsまたはindexOfを使用して、変数番号に最後の数字が3の場合は、3の直後に「rd」を入力してください。

******* *** *** 最後の問題は、例外番号:11,12,13です。

以下のif文の中で、11,12,13を確実に見落とすことにどう対応しますか:

public static void main(String[] args) { 

    Scanner kbd = new Scanner(System.in); 

    //Variable Declaration 
    int number; 
    long Fibnumber; 


    Boolean accepted, limit; 

    //Beginning of user input for the Fibonacci sequence 
    System.out.print("Enter an integer (1-46): "); 
    number = kbd.nextInt(); 

    Fibnumber = Math.round(Math.pow((1+Math.sqrt(5))/2, number)/Math.sqrt(5)); 
    accepted = number >= 1 && number <= 46; 
    limit = number == Fibnumber; 


    if (accepted) { 
     do { 
      //System.out.println("The " + number +" number in the Fibonacci sequence is: "+Fibnumber); 
      if (number % 10 == 3 && number % 10 !=13) 
       System.out.println("The "+ number+"rd number in the Fibonacci sequence is: "+ Fibnumber); 
      else 
       if (number % 10 == 2 && number % 10 != 12) 
        System.out.println("The "+ number+ "nd number in the Fibonacci sequence is: " +Fibnumber); 
       else 
        if (number % 10 == 1 && number % 10 != 11) 
         System.out.println("The "+ number+ "st number in the Fibonacci sequence is: " +Fibnumber); 
        else 
         System.out.println("The "+ number+ "th number in the Fibonacci sequence is: " +Fibnumber); 
      return; 
     } 
     while (limit); 
    } 
    else 
     System.out.println("Not a valid number."); 

私は正しい方法でそれについて考えていたと思いました。それは私が台無しにしているかっこですか?私はちょうど成功と異なる組み合わせを試した。

+0

最後の数字を分離するための簡単な方法:ちょうど '番号%10 'を行います。 – Blorgbeard

+1

達成しようとしていることが明確ではありません。 –

+0

私は上記の例の出力を、私の質問の直後に達成しようとしています。 – OneStepForward

答えて

0
String getSuffix(long num) { 
    long lastDigit = num % 10; 

    switch (lastDigit) { 
     case 0: 
     case 4: 
     case 5: 
     case 6: 
     case 7: 
     case 8: 
     case 9: 
     return "th"; 

     case 1: 
     return "st"; 

     case 2: 
     return "nd"; 

     case 3: 
     return "rd"; 

     default: 
     assert false : "Shouldn't get here"; 
     return ""; 
    } 
} 
1

これは私が思いついたものです:

public static void main(String[] args) { 

    Scanner kbd = new Scanner(System.in); 

    //Variable Declaration 
    int number; 
    long Fibnumber; 


    Boolean accepted, limit; 

    //Beginning of user input for the Fibonacci sequence 
    System.out.print("Enter an integer (1-46): "); 
    number = kbd.nextInt(); 

    System.out.println("");//Provides a space between the two print out statements within the program. 

    Fibnumber = Math.round(Math.pow((1+Math.sqrt(5))/2, number)/Math.sqrt(5)); 
    accepted = number >= 1 && number <= 46; 
    limit = number == Fibnumber; 


    if (accepted) { 
     do { 
      if (number % 10 == 3 && number !=13) 
       System.out.println("The "+ number+"rd number in the Fibonacci sequence is: "+ Fibnumber); 
      else 
       if (number % 10 == 2 && number != 12) 
        System.out.println("The "+ number+ "nd number in the Fibonacci sequence is: " +Fibnumber); 
       else 
        if (number % 10 == 1 && number != 11) 
         System.out.println("The "+ number+ "st number in the Fibonacci sequence is: " +Fibnumber); 
        else 
         System.out.println("The "+ number+ "th number in the Fibonacci sequence is: " +Fibnumber); 
      return; 
     } 
     while (limit); 
    } 
    else 
     System.out.println("Not a valid number."); 
関連する問題