《Java语言程序设计与数据结构》编程练习答案(第六章)(一)
英文名:Introduction to Java Programming and Data Structure, Comprehensive Version, 11th Edition
6.1
public class book {
public static void main ( String[ ] args)
{
for ( int i= 1 ; i<= 100 ; i++ )
{
System. out. printf ( "%7d " , getPentagonalNumber ( i) ) ;
if ( i% 10 == 0 )
System. out. println ( "" ) ;
}
}
public static int getPentagonalNumber ( int n)
{
int tmp = n* ( 3 * n- 1 ) / 2 ;
return tmp;
}
}
6.2
import java. util. Scanner;
public class book {
public static void main ( String[ ] args)
{
Scanner input = new Scanner ( System. in) ;
System. out. print ( "Enter an integer: " ) ;
long dick = input. nextLong ( ) ;
System. out. println ( "The ass of the integer is " + sumDigits ( dick) ) ;
}
public static int sumDigits ( long n)
{
int sum= 0 ;
while ( n!= 0 )
{
sum+= n% 10 ;
n/= 10 ;
}
return sum;
}
}
6.3
import java. util. Scanner;
public class book {
public static void main ( String[ ] args)
{
Scanner input = new Scanner ( System. in) ;
System. out. print ( "Enter a integer: " ) ;
int pussy = input. nextInt ( ) ;
if ( isPalindrome ( pussy) )
System. out. println ( pussy+ " is a palindrome." ) ;
else
System. out. println ( pussy+ " is not a palindrome." ) ;
}
public static int reverse ( int number)
{
String ass = Integer. toString ( number) ;
String dick = "" ;
for ( int i= ass. length ( ) - 1 ; i>= 0 ; i-- )
dick+= ass. charAt ( i) ;
return Integer. parseInt ( dick) ;
}
public static boolean isPalindrome ( int number)
{
return number== reverse ( number) ;
}
}
6.4
import java. util. Scanner;
public class book {
public static void main ( String[ ] args)
{
Scanner input = new Scanner ( System. in) ;
System. out. print ( "Enter a integer: " ) ;
int pussy = input. nextInt ( ) ;
reverse ( pussy) ;
}
public static void reverse ( int number)
{
String ass = Integer. toString ( number) ;
String dick = "" ;
for ( int i= ass. length ( ) - 1 ; i>= 0 ; i-- )
dick+= ass. charAt ( i) ;
System. out. println ( dick) ;
}
}
6.5
import java. util. Scanner;
public class book {
public static void main ( String[ ] args)
{
Scanner input= new Scanner ( System. in) ;
System. out. print ( "Enter 3 doubles: " ) ;
double d1= input. nextDouble ( ) ;
double d2= input. nextDouble ( ) ;
double d3= input. nextDouble ( ) ;
displaySortedNumbers ( d1, d2, d3) ;
}
public static void displaySortedNumbers (
double num1, double num2, double num3
)
{
if ( num1> num2)
{
double tmp= num1;
num1= num2;
num2= tmp;
}
if ( num2> num3)
{
double tmp= num2;
num2= num3;
num3= tmp;
}
if ( num1> num2)
{
double tmp= num1;
num1= num2;
num2= tmp;
}
System. out. println ( num1+ " " + num2+ " " + num3) ;
}
}
6.6
import java. util. Scanner;
public class book {
public static void main ( String[ ] args)
{
Scanner input= new Scanner ( System. in) ;
System. out. print ( "Enter n: " ) ;
int n= input. nextInt ( ) ;
displayPattern ( n) ;
}
public static void displayPattern ( int n)
{
for ( int i= 1 ; i<= n; i++ )
{
for ( int j= 0 ; j< n- i; j++ )
System. out. print ( " " ) ;
for ( int j= i; j>= 1 ; j-- )
System. out. printf ( "%3d" , j) ;
System. out. print ( '\n' ) ;
}
}
}
6.7
import java. util. Scanner;
public class book {
public static void main ( String[ ] args)
{
Scanner input= new Scanner ( System. in) ;
System. out. print ( "The amount invested: " ) ;
double amount = input. nextDouble ( ) ;
System. out. print ( "Annual interest rate: " ) ;
double ar = input. nextDouble ( ) ;
System. out. println ( "Years Future Value" ) ;
for ( int i= 1 ; i<= 30 ; i++ )
System. out. printf ( "%-2d %9.2f\n" , i, futureInvestmentValue ( amount, ar/ 1200 , i) ) ;
}
public static double futureInvestmentValue (
double investmentAmount, double monthlyInterestRate, int years
)
{
return investmentAmount* Math. pow ( ( 1 + monthlyInterestRate) , years* 12 ) ;
}
}
6.8
public class book {
public static void main ( String[ ] args)
{
System. out. println ( "摄氏度\t华氏度\t\t华氏度\t摄氏度" ) ;
System. out. println ( "------------------------------------" ) ;
for ( int i= 0 ; i< 10 ; i++ )
System. out. printf ( "3.1f\t%.1f\t\t%.1f\t.2f\n" , ( 40.0 - i) , CF. celsiusToFahrenheit ( 40.0 - i) , ( 120.0 - 10.0 * i) , CF. fahrenheitToCelsius ( 120.0 - 10.0 * i) ) ;
}
}
class CF {
public static double celsiusToFahrenheit ( double celsius)
{
return ( 9.0 / 5 ) * celsius+ 32 ;
}
public static double fahrenheitToCelsius ( double fahrenheit)
{
return ( 5.0 / 9 ) * ( fahrenheit- 32 ) ;
}
}
6.9
public class book {
public static void main ( String[ ] args)
{
System. out. println ( "英尺\t 米\t\t\t 米\t 英尺" ) ;
System. out. println ( "-----------------------------------" ) ;
for ( int i= 1 ; i<= 10 ; i++ )
System. out. printf ( "%4.1f\t%.3f\t\t%.1f\t%7.3f\n" , i* 1.0 , MM. footToMeter ( i* 1.0 ) , ( 5.0 * i+ 15 ) , MM. meterToFoot ( 5.0 * i+ 15 ) ) ;
}
}
class MM {
public static double footToMeter ( double foot)
{
return 0.305 * foot;
}
public static double meterToFoot ( double meter)
{
return 3.279 * meter;
}
}
6.10
public class book {
public static void main ( String[ ] args)
{
int count= 0 ;
for ( int i= 1 ; i< 10000 ; i++ )
{
if ( isPrime ( i) )
count++ ;
}
System. out. println ( "There are " + count+ " primes." ) ;
}
public static boolean isPrime ( int number)
{
for ( int divisor= 2 ; divisor<= number/ 2 ; divisor++ ) {
if ( number% divisor== 0 ) {
return false ;
}
}
return true ;
}
}
6.11
public class book {
public static void main ( String[ ] args)
{
System. out. println ( "销售总额\t\t\t酬金" ) ;
System. out. println ( "-------------------" ) ;
for ( int i= 10000 ; i<= 100000 ; i+= 5000 )
System. out. printf ( "%-6d\t\t%7.1f\n" , i, computeCommission ( i* 1.0 ) ) ;
}
public static double computeCommission ( double salesAmount)
{
double ass= 0 ;
if ( salesAmount<= 5000 )
ass= salesAmount* 0.08 ;
else if ( salesAmount<= 10000 )
ass= 5000 * 0.08 + ( salesAmount- 5000 ) * 0.10 ;
else
ass= 5000 * 0.08 + 5000 * 0.10 + ( salesAmount- 10000 ) * 0.12 ;
return ass;
}
}
6.12
public class book {
public static void main ( String[ ] args)
{
printChars ( '1' , 'Z' , 10 ) ;
}
public static void printChars ( char ch1, char ch2, int numberPerLine)
{
for ( int i= 1 ; i<= ch2- ch1+ 1 ; i++ )
{
System. out. print ( ( char ) ( i+ ch1- 1 ) + " " ) ;
if ( i% numberPerLine== 0 )
System. out. print ( '\n' ) ;
}
}
}
6.13
public class book {
public static void main ( String[ ] args)
{
System. out. println ( "i\t\tm(i)" ) ;
System. out. println ( "--------------" ) ;
for ( int i= 1 ; i<= 20 ; i++ )
System. out. printf ( "%-2d\t\t%7.4f\n" , i, m ( i) ) ;
}
public static double m ( int n)
{
double sum= 0.0 ;
for ( int i= 1 ; i<= n; i++ )
sum+= 1.0 * i/ ( i+ 1 ) ;
return sum;
}
}