zoukankan      html  css  js  c++  java
  • 作业(第六章:方法)

    6.1(数学:五角数)

    一个五角数被定义为n(3n-1)/2,其中n=1,2,...。所以,开始的几个数字就是1,5,12,22...,编写下面的方法返回一个五角数:

    public static int getPentagonalNumber(int n)

    编写一个测试程序显示前100个无角数,每行显示10个。

    package com.echo.work6;
    
    public class GetPentagonalNumber {
    	public static int getPentagonalNumber(int n) {
    		return (n * (3 * n - 1)) / 2;
    	}
    
    	public static void main(String[] args) {
    		for (int i = 1; i <= 100; i++) {
    			int num = getPentagonalNumber(i);
    			System.out.print(num + " ");
    			if (i % 10 == 0) {
    				System.out.println("
    ");
    			}
    		}
    	}
    }
    
    

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

    编写一个方法,计算一个整数各位数字之和。使用下面的方法头:

    public static int sumDigits(long n)

    例如:sumDigits(234)返回9(2+3+4)

    提示:使用求余操作符%提取数字,用除号/去掉提取出来的数字。例如:使用234%10(=4)抽取4。然后使用234/10(=23)从234中去掉4.使用一个循环来反复提取和去掉每位数字,直到所有的位数都提取完为止。

    编写程序提示用户输入一个整数,然后显示这个整数所有数字的和。

    package com.echo.work6;
    
    import java.util.Scanner;
    
    public class SumDigits {
    	public static int sumDigits(long n) {
    		int sum = 0;
    		while (n != 0) {
    			int m = (int) (n % 10);
    			sum += m;
    			n = n / 10;
    		}
    		return sum;
    	}
    
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		System.out.print("请输入一个整数:");
    		int number = input.nextInt();
    		System.out.println(sumDigits(number));
    	}
    }
    

    6.3(回文整数)

    使用下面的方法头编写两个方法:

    // return the reversal of an integer, i.e., reverse(456) returns 654

    public static int reverse(int number)

    // return true if number is a palindrome

    public static boolean isPalindrome(int number)

    使用reverse方法实现isPalindrome。如果一个数字的反向倒置数和它的顺向数一样,这个数就称为回文数。编写一个测试程序,提示用户输入一个整数值,然后报告这个整数是否是回文数。

    p1:

    package com.echo.work6;
    
    import java.util.Scanner;
    
    public class TestPalindrome {
    	public static int reverse(int number) {
    		int temp = 0;
    		while (number != 0) {
    			temp *= 10;
    			temp += number % 10;
    			number /= 10;
    		}
    		return temp;
    	}
    
    	public static void isPalindrome(int number) {
    		if (number == reverse(number)) {
    			System.out.println("是回文数");
    		} else {
    			System.out.println("不是回文数");
    		}
    	}
    
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		System.out.print("请输入一个整数:");
    		int number = input.nextInt();
    		isPalindrome(number);
    	}
    }
    

    p2:

    package com.echo.work6;
    
    import java.util.Scanner;
    
    public class TestPalindrome {
    	public static void reverse(int number) {
    		while (number != 0) {
    			int remainder = number % 10;
    			System.out.print(remainder);
    			number = number / 10;
    		}
    	}
    
    	public static void isPalindrome(int number) {
    		if (number == reverse(number)) {
    			System.out.println("是回文数");
    		} else {
    			System.out.println("不是回文数");
    		}
    	}
    
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		System.out.print("请输入一个整数:");
    		int number = input.nextInt();
    		isPalindrome(number);
    	}
    }
    

    6.4(反向显示一个整数)

    使用下面的方法头编写方法,反向显示一个整数:

    public static int reverse(number)

    例如:reverse(3456)返回6543。编写一个测试程序,提示用户输入一个整数,然后显示它的反向数。

    package com.echo.work6;
    
    import java.util.Scanner;
    
    public class ReverseNumber {
    	public static int reverse(int number) {
    		int temp = 0;
    		while (number != 0) {
    			temp *= 10;
    			temp += number % 10;
    			number = number / 10;
    		}
    		return temp;
    	}
    
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		System.out.println("请输入一个整数:");
    		int number = input.nextInt();
    		System.out.println(number + "反向数为:" + reverse(number));
    
    	}
    }
    

    6.5(对三个数排序)

    使用下面的方法头编写方法,按升序显示三个数:

    public static void displaySortedNumbers(double num1, double num2, double num3)

    编写测试程序,提示用户输入三个数字,调用方法以升序显示他们。

    package com.echo.work6;
    
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class DisplaySortedNumbers {
    	public static void displaySortedNumbers(double num1, double num2, double num3) {
    		double sort[] = { num1, num2, num3 };
    		Arrays.sort(sort);
    		for (int i = 0; i < sort.length; i++) {
    			System.out.print(sort[i] +" ");
    		}
    	}
    
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		System.out.println("请输入三个数:");
    		double num1 = input.nextDouble();
    		double num2 = input.nextDouble();
    		double num3 = input.nextDouble();
    		displaySortedNumbers(num1, num2, num3);
    	}
    }
    

    6.6(显示图案)

    编写方法显示如下图案:

            1
           21
          321
    
    n n-1 321
    

    该方法头为:

    public static void displayPattern(int n)

    package com.echo.work6;
    
    import java.util.Scanner;
    
    public class DisplayPattern {
    	public static void displayPattern(int n) {
    		for (int row = 1; row <= n; row++) {
    			// Print spaces
    			for (int i = row; i < n; i++) {
    				System.out.print("  ");
    			}
    			// Print numbers
    			for (int i = row; i >= 1; i--) {
    				System.out.print(" " + i);
    			}
    			System.out.println();
    		}
    	}
    
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		System.out.println("请输入行号:");
    		int lineNumber = input.nextInt();
    		displayPattern(lineNumber);
    	}
    }
    

    6.7(财务应用程序:计算未来投资价值)

    编写一个方法,计算按照给定的年数和利率计算未来投资值,未来投资是用编程练习题2.21中的公式计算得到的。

    未来投资金额 = 投资总额 * (1 + 月利率)^年数*12
    

    例如:如果输入的投资金额为1000,年利率为3.25%,年数为1,那么未来投资额为1032.98。

    使用下面的方法头:

    public static double futureInvestmentValue(double investmentAmount , double monthlyInterestRate , int years)

    例如:futureInvestmentValue(10000, 0.05/12, 5)返回12833.59

    编写一个测试程序,提示用户输入投资额(例如1000)、利率(例如9%),然后打印年份从1到30年的未来投资值,如下所示:

    The amount invested: 1000

    Annual interest rate: 9

    Years Future Value
    1 1093.80
    2 1196.41
    ...
    29 13467.25
    30 14730.57

    6.8(摄氏度和华氏度之间的转化)

    编写一个类,包含下面两个方法:

    Convert from Celsius to Fahrenheit

    public static double celsiusToFahrenheit(double celsius)

    Convert from Fahrenheit to Celsius

    public static double fahrenheitToCelsius(double fahrenheit)

    转换公式如下:

    华氏度 = (9.0 / 5) * 摄氏度 + 32

    摄氏度 = (5.0 / 9) * (华氏度 - 32)

    编写一个测试程序,调用这两个方法来显示如下表格:

    摄氏度 华氏度
    40.0 104.0
    39.0 102.2
    华氏度 摄氏度
    120.0 48.89
    110.0 43.33
    package com.echo.work6;
    
    import java.util.Scanner;
    
    public class ConvertCelsiusFahrenheit {
    	// Convert from Celsius To Fahrenheit
    	public static double celsiusToFahrenheit(double celsius) {
    		return ((9.0 / 5) * celsius) + 32;
    	}
        
    	// Convert from fahenheit
    	public static double fahrenheitToCelsius(double fahrenheit) {
    		return (5.0 / 9) * (fahrenheit - 32);
    	}
    
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		System.out.println("请输入摄氏度:");
    		double celsius = input.nextDouble();
    		System.out.println(celsius + ": " + celsiusToFahrenheit(celsius));
    		System.out.println("请输入华氏度:");
    		double fahrenheit = input.nextDouble();
    		System.out.println(fahrenheit + ": " + fahrenheitToCelsius(fahrenheit));
    	}
    }
    

    6.9(英尺和米之间的转换)

    编写一个类,包含如下两个方法:

    //Convert from feet to meters

    public static double feetToMeter(double feet)

    //Convert from meters to feet

    public static double metersToFeet(double meters)

    转换公式如下:

    米 = 0.305 * 英尺

    英尺 = 3.279 * 米

    编写一个测试程序,调用这两个方法以显示下面的表格:

    英尺
    1.0 0.305
    2.0 0.610
    英尺
    20.0 65.574
    25.0 81.967
    package com.echo.work6;
    
    import java.util.Scanner;
    
    public class ConvertFeetMeters {
    	// Convert from feet to meters
    	public static double feetToMeters(double feet) {
    		return 0.305 * feet;
    	}
    
    	// Convert from meters to feet
    	public static double metersToFeet(double meters) {
    		return 3.279 * meters;
    	}
    
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		System.out.println("请输入米数:");
    		double meters = input.nextDouble();
    		System.out.println(meters + ": " + metersToFeet(meters));
    		System.out.println("请输入英尺数:");
    		double feet = input.nextDouble();
    		System.out.println(feet + ": " + feetToMeters(feet));
    	}
    }
    

    6.10(使用isPrime方法)

    程序清单6-7提供了测试某个数字是否是素数的方法isPrime(int number)。使用这个方法求小于10000的素数的个数。


    ┆ 凉 ┆ 暖 ┆ 降 ┆ 等 ┆ 幸 ┆ 我 ┆ 我 ┆ 里 ┆ 将 ┆   ┆ 可 ┆ 有 ┆ 谦 ┆ 戮 ┆ 那 ┆   ┆ 大 ┆   ┆ 始 ┆ 然 ┆
    ┆ 薄 ┆ 一 ┆ 临 ┆ 你 ┆ 的 ┆ 还 ┆ 没 ┆   ┆ 来 ┆   ┆ 是 ┆ 来 ┆ 逊 ┆ 没 ┆ 些 ┆   ┆ 雁 ┆   ┆ 终 ┆ 而 ┆
    ┆   ┆ 暖 ┆   ┆ 如 ┆ 地 ┆ 站 ┆ 有 ┆   ┆ 也 ┆   ┆ 我 ┆   ┆ 的 ┆ 有 ┆ 精 ┆   ┆ 也 ┆   ┆ 没 ┆ 你 ┆
    ┆   ┆ 这 ┆   ┆ 试 ┆ 方 ┆ 在 ┆ 逃 ┆   ┆ 会 ┆   ┆ 在 ┆   ┆ 清 ┆ 来 ┆ 准 ┆   ┆ 没 ┆   ┆ 有 ┆ 没 ┆
    ┆   ┆ 生 ┆   ┆ 探 ┆   ┆ 最 ┆ 避 ┆   ┆ 在 ┆   ┆ 这 ┆   ┆ 晨 ┆   ┆ 的 ┆   ┆ 有 ┆   ┆ 来 ┆ 有 ┆
    ┆   ┆ 之 ┆   ┆ 般 ┆   ┆ 不 ┆   ┆   ┆ 这 ┆   ┆ 里 ┆   ┆ 没 ┆   ┆ 杀 ┆   ┆ 来 ┆   ┆   ┆ 来 ┆
  • 相关阅读:
    js中属性和方法的类型和区别
    深入理解js构造函数
    null和undefined区别(转)
    理解闭包 js回收机制
    php:判断 是否开启 SSL,CURL,ZIP,GD2,MYSQL,是否安装MEMCACHED
    php:封装了个时间函数,返回类似“1分钟前发布”,“5小时前发布”,“3年前发布”
    php:获取一个表不含text类型的全部字段
    php:两个文件夹递归地比较,没有的文件自动复制过去
    php:php相关的函数或用法记录
    js:常用到的js操作记录
  • 原文地址:https://www.cnblogs.com/echoing/p/8043094.html
Copyright © 2011-2022 走看看