Java语言程序设计基础篇原书第十版第六章编程练习题答案

时间:2021-04-15 21:49:24

最近大家都在催我更新,最近状态有点不好,做事情注意力不集中,所以调整了一小段时间,我给大家推荐一个方法,就是总有想学又不想看书的时候,整个人都不好了,这个时候就得去玩,放开了玩,玩到不想玩,玩恶心了就可以专心的学习了。真的!我是这么做的,只要心里还是有学习,就可行的,心里没有学习那也不说了。学无止境共勉之。
注意:本章联系中常犯的错误是,没有实现符合需求的方法,尽管主程序的输出是正确的。

6.1数学:五角数
这道题我另外使用了个printNumber(int n,int count)方法,相信大家也很容易懂,因为做提前我还是方法抽象了一下。

package nameyu;

import java.util.Scanner;

public class Test {
    /** * @param args */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input=new Scanner(System.in);
        System.out.print("Enter a number to display Pentagonal:");
        int n=input.nextInt();
        int count=0;
        getPentagonalNumber(n, count);

    }
    public static int getPentagonalNumber(int n,int count){
        int pentagonalNumbers = 0;
        for(int i=1;i<=n;i++){
            pentagonalNumbers=i*(3*i-1)/2;
            count++;
            printNumber(pentagonalNumbers,count);
        }
        return pentagonalNumbers;
    }
    public static void printNumber(int n,int count){
        if(count%10==0){
            System.out.println(n);
        }else
            System.out.print(n+"\t");
    }
}

6.2求一个整数各位数字之和

package nameyu;

import java.util.Scanner;

public class Test {
    /** * @param args */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input=new Scanner(System.in);
        System.out.print("Enter a number :");
        long n=input.nextLong();
        System.out.println(sumDigits(n));
    }
    public static int sumDigits(long n){
        long x;
        long sum=0;
        while(n!=0){
             x=n%10;
             sum+=x;
             n=n/10;
        }
        return (int) sum;
    }
}

6.3回文整数

package nameyu;

import java.util.Scanner;

public class Test {
    /** * @param args */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input=new Scanner(System.in);
        System.out.print("Enter a number :");
        int number=input.nextInt();
        if(isPalindrome(number))
            System.out.println(number+" is a palindrome number");
        else
            System.out.println(number+" is not a palindrome number");

    }
   public static int reverse(int number){
       int x;
       int sum=0; 
       while(number!=0){
           x=number%10;
           sum=(sum*10)+x;
           number=number/10;
       }
       return sum;
   }
   public static boolean isPalindrome(int number){
       return (number==reverse(number));

   }
}

6.4反向显示一个整数
这道题是上面那道题的一部分。

package nameyu;

import java.util.Scanner;

public class Test {
    /** * @param args */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input=new Scanner(System.in);
        System.out.print("Enter a number :");
        int number=input.nextInt();
        System.out.println(reverse(number));

    }
   public static int reverse(int number){
       int x;
       int sum=0; 
       while(number!=0){
           x=number%10;
           sum=(sum*10)+x;
           number=number/10;
       }
       return sum;
   }

}     

6.5对三个数排序

package nameyu;

import java.util.Scanner;

public class Test {
    /** * @param args */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input=new Scanner(System.in);
        System.out.print("Enter first number :");
        double num1=input.nextDouble();
        System.out.print("Enter second number :");
        double num2=input.nextDouble();
        System.out.print("Enter third number :");
        double num3=input.nextDouble();
        dispalySortedNumbers(num1, num2, num3);
    }
    public static void dispalySortedNumbers(double num1,double num2,double num3){
         if(num1>num2&&num1>num3){
             if(num2>num3){
                 System.out.println(num3+" "+num2+" "+num1);
             }
             else
                 System.out.println(num2+" "+num3+" "+num1);
         }
         else if(num2>num1&&num2>num3){
             if(num1>num3){
                 System.out.println(num3+" "+num1+" "+num2);
             }
             else
                 System.out.println(num1+" "+num3+" "+num2);
         }
         else if(num3>num1&&num3>num2){
             if(num1>num2){
                 System.out.println(num2+" "+num1+" "+num3);
             }
             else
                 System.out.println(num1+" "+num2+" "+num3);
         }
    }

}

6.6显示图案

package nameyu;

import java.util.Scanner;

public class Test {
    /** * @param args */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input=new Scanner(System.in);
         System.out.print("Enter the number of line :");
        int n=input.nextInt();
        displayPattern(n);
    }
    public static void displayPattern(int n){
          for(int i=1; i<=n; i++) {
              for(int j=(n-i)*3-1; j>=0; j--) {
                  System.out.print(" ");
              }
              for(int j=i; j>=1; j--) {
                  if(j<10)
                      System.out.print(" ");
                  else 
                      System.out.print(" ");
                  System.out.print(j);
              }
               System.out.println("");
           }
    }

}

或者将代码改成这样,可能更加简洁,更容易懂。

package nameyu;

import java.util.Scanner;

public class Test {
    /** * @param args */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input=new Scanner(System.in);
         System.out.print("Enter the number of line :");
        int n=input.nextInt();
        displayPattern(n);
    }
    public static void displayPattern(int n){
        for(int i=1;i<=n;i++){
            for(int j=(n-i);j>0;j--){
                System.out.print("\t");
            }
            for(int j=i;j>=1;j--)
                System.out.print(j+"\t");

        System.out.println();
        }
    }

}

兄弟们私信让我先给第六章的前面的代码给你们,我先发出来这些,过几天补全后面的。