<<Java程序设计与数据结构>>第六章练习

习题来源: <<Java程序设计与数据结构(原书第11版)>> 机械工业出版社 梁勇著 戴开宇译
书籍页码: P203
最后一次编辑时间: 2019-9-14

6-1 (数学: 五角数)

package textbook.ch06;

public class Ex06_04 {
    public static void main(String[] args) {
        for(int i=1;i<=100;i++){
            if(i % 10 == 0)
                System.out.printf("%7d\n", getPentagonalNumber(i));
            else
                System.out.printf("%7d ", getPentagonalNumber(i));
        }
    }

    public static int getPentagonalNumber(int n){
        return n * (3 * n-1) / 2;
    }
}

6-2 (求一个整数各位数字之和)

package textbook.ch06;
import java.util.*;

public class Ex06_02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong();
        System.out.println("sum = " + sumDigits(n));
    }
    public static int sumDigits(long n){
        int sum = 0;
        while(n != 0){
            sum += n % 10;
            n /= 10;
        }
        return sum;
    }
}

6-3 (回文整数)

package textbook.ch06;

import java.util.Scanner;

public class Ex06_03 {
    public static int reverse(int number){
        StringBuilder s = new StringBuilder(String.valueOf(number));
        s.reverse();
        int num = Integer.parseInt("" + s);
        return num;
    }
    public static boolean isPalindrome(int number){
        if(number == reverse(number))
            return true;
        else
            return false;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        System.out.println(isPalindrome(num));
    }
}

6-4 (反序显示一个整数)

package textbook.ch06;

import java.util.Scanner;

public class Ex06_04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        System.out.println(reverse(num));
    }
    public static int reverse(int number){
        StringBuilder s = new StringBuilder(String.valueOf(number));
        s.reverse();
        int num = Integer.parseInt("" + s);
        return num;
    }
}

6-5 (对三个数进行升序)

package textbook.ch06;

import java.util.Arrays;
import java.util.Scanner;

public class Ex06_05 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        double num1 = sc.nextDouble();
        double num2 = sc.nextDouble();
        double num3 = sc.nextDouble();
        displaySortedNumbers(num1, num2, num3);
    }
    public static void displaySortedNumbers(double num1, double num2, double num3){
        double[] arr =  {num1, num2, num3};
        Arrays.sort(arr);
        for (double i:arr){
            System.out.println(i);
        }
    }
}

6-6 (显示图案)

package textbook.ch06;

import java.util.Scanner;

public class Ex06_06 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        displayPattern(n);
    }
    public static void displayPattern(int n){
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n-i;j++)
                System.out.print("  ");
            for(int k=i;k>0;k--)
                if( k == 1)
                    System.out.println(k);
                else
                    System.out.print(k + " ");
        }
    }
}

6-10 (求小于10000的素数的个数)

package textbook.ch06;

public class Ex06_10 {
    public static void main(String[] args) {
        int sum = 0;
        for(int i=2;i<10000;i++)
            if(isPrime(i))
                sum += 1;
        System.out.println(sum);
    }
    public static boolean isPrime(int num){
        int bound = (int)Math.sqrt(num);
        for(int i=2; i<=bound;i++){
            if(num % i == 0)
                return false;
        }
        return true;
    }
}

6-12 (显示字符)

package textbook.ch06;

public class Ex06_12 {
    public static void main(String[] args) {
        printChars('1', 'z', 10);
    }
    public static void printChars(char ch1, char ch2, int numberLine){
        int count = 1;
        for(int i=ch1;i<=ch2;i++,count++)
            if(count % numberLine == 0)
                System.out.println((char)i);
            else
                System.out.print((char)i + " ");
    }
}

6-13 (数列求和)

package textbook.ch06;

import java.util.Scanner;

public class Ex06_13 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println("i\t" + "m(i)");
        System.out.println("___________________");
        for(int i=1;i<=n;i++){
            System.out.printf("%d\t%.4f\n", i ,calculateSum(i));
        }
    }
    public static double calculateSum(int n){
        double sum = 0;
        for(int i=1;i<=n;i++){
            sum += (double)i/(i+1);
        }
        return sum;
    }
}

6-14 (估算Π)

package textbook.ch06;

import java.util.Scanner;

public class Ex06_14 {
    public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
         int n = sc.nextInt();
        System.out.println("i\t" + "m(i)");
        System.out.println("___________________");
        for(int i=1;i<=n;i++){
            System.out.printf("%d\t%.4f\n", i ,calculatePi(i));
        }
    }
    public static double calculatePi(int n){
        double sum = 0;
        for(int i=1;i<=n;i++){
            sum += Math.pow(-1.0, (double)i+1) / (2*i - 1);
        }
        return 4 * sum;
    }
}

6-16 (一年的天数)

package textbook.ch06;

public class Ex06_16 {
    public static void main(String[] args) {
        for(int year = 2000;year<=2020;year++){
            System.out.println(year + " has " + numberOfDaysInAYear(year) + " days.");
        }
    }
    public static int numberOfDaysInAYear(int year){
        if(isLeapYear(year))
            return 366;
        else
            return 365;
    }
    public static boolean isLeapYear(int year){
        if(year % 4 == 0 && year % 100 !=0 || year % 400 == 0)
            return true;
        else
            return false;
    }
}

6- ()

6- ()

6- ()

6- ()

6- ()

6- ()

6- ()

6- ()

6- ()

6- ()

6- ()

6- ()

英文单词

单词 音标 释义
alphabetical /ælfə'betɪk(ə)l/ 依字母顺序的
Freshman /'freʃmən/ 大学一年级学生
Sophomore /'sɒfəmɔː/ 大学二年级学生
Junior /'dʒunɪɚ/ 大学三年级学生
Senior /'sinɪɚ/ 大学四年级学生
latitude /'lætɪtjuːd/ 纬度
longitude /'lɒn(d)ʒɪtjuːd; 'lɒŋgɪ-/ 经度
Radian /'reɪdɪən/ 弧度
invalid /ˈɪnvəlɪd;ɪnˈvælɪd/ 无效的