《Java语言程序设计与数据结构》编程练习答案(第六章)(二)
英文名:Introduction to Java Programming and Data Structures, Comprehensive Version, 11th Edition
6.14
public class book {
public static void main(String[] args)
{
System.out.println("i\t\tm(i)");
System.out.println("--------------");
for(int i=1;i<=901;i+=100)
System.out.printf("%-2d\t\t%7.4f\n",i,m(i));
}
public static double m(int n)
{
double sum = 0;
for(int i=1;i<=n;i++)
{
if(i%2==1)
sum+=1.0/(2*i-1);
else
sum-=1.0/(2*i-1);
}
return 4.0*sum;
}
}
6.15
见习题3.13
👨佛🌶
6.16
public class book {
public static void main(String[] args)
{
for(int i=2000;i<=2020;i++)
System.out.println(i+" has "+numberOfDyaInYear(i)+" days.");
}
public static int numberOfDyaInYear(int year)
{
if((year%4==0&&year%100!=0)||(year%400==0))
return 366;
else
return 365;
}
}
6.17
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();
printMatrix(n);
}
public static void printMatrix(int n)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
System.out.print((int)(2*Math.random())+" ");
System.out.print('\n');
}
}
}
6.18
import java.util.Scanner;
public class book {
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
System.out.print("Enter your password: ");
String dick = input.next();
if(isValid(dick))
System.out.println("Valid Password.");
else
System.out.println("Invalid Password.");
}
public static boolean isValid(String ass)
{
int len = ass.length();
int count=0;
if(len<8)
return false;
for(int i=0;i<len;i++)
{
char tmp=ass.charAt(i);
if((tmp<='z'&&tmp>='a')||(tmp<='Z'&&tmp>='A')||(tmp<='9'&&tmp>='0')) {
}
else
return false;
}
for(int i=0;i<len;i++)
{
char tmp=ass.charAt(i);
if(tmp<='9'&&tmp>='0')
count++;
}
return count >= 2;
}
}
6.19
import java.util.Scanner;
public class book {
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
System.out.print("Enter three sides: ");
double s1=input.nextDouble();
double s2=input.nextDouble();
double s3=input.nextDouble();
if(isValid(s1,s2,s3))
System.out.println("The area is "+area(s1,s2,s3));
else
System.out.println("The input is invalid.");
}
public static boolean isValid(
double side1,double side2,double side3
)
{
return !(side1 >= side2 + side3) && !(side2 >= side1 + side3) && !(side3 >= side1 + side2);
}
public static double area(
double side1,double side2,double side3
)
{
double p=(side1+side2+side3)/2.0;
double area = Math.sqrt(p*(p-side1)*(p-side2)*(p-side3));
return area;
}
}
6.20
import java.util.Scanner;
public class book {
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
System.out.print("Enter a string: ");
String s = input.next();
System.out.println(s+" has "+countLetters(s)+" letters.");
}
public static int countLetters(String s)
{
int len=s.length();
s=s.toLowerCase();
int count=0;
for(int i=0;i<len;i++) {
if (s.charAt(i) <= 'z' && s.charAt(i) >= 'a')
count++;
}
return count;
}
}
6.21
import java.util.Scanner;
public class book {
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
System.out.print("Enter a string: ");
String s = input.next();
int len = s.length();
s=s.toUpperCase();
for(int i=0;i<len;i++)
{
if(s.charAt(i)<='Z'&&s.charAt(i)>='A')
System.out.print(getNumber(s.charAt(i)));
else
System.out.print(s.charAt(i));
}
System.out.print('\n');
}
public static int getNumber(char uppercaseLetter)
{
if(uppercaseLetter=='A'||uppercaseLetter=='B'||uppercaseLetter=='C')
return 2;
else if(uppercaseLetter=='D'||uppercaseLetter=='E'||uppercaseLetter=='F')
return 3;
else if(uppercaseLetter=='G'||uppercaseLetter=='H'||uppercaseLetter=='I')
return 4;
else if(uppercaseLetter=='J'||uppercaseLetter=='K'||uppercaseLetter=='L')
return 5;
else if(uppercaseLetter=='M'||uppercaseLetter=='N'||uppercaseLetter=='O')
return 6;
else if(uppercaseLetter=='P'||uppercaseLetter=='Q'||uppercaseLetter=='R'||uppercaseLetter=='S')
return 7;
else if(uppercaseLetter=='T'||uppercaseLetter=='U'||uppercaseLetter=='V')
return 8;
else
return 9;
}
}
6.22
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: ");
long ass = input.nextLong();
System.out.println("The root is "+sqrt(ass));
}
public static double sqrt(long n)
{
double lastGuess = 1.0;
double nextGuess = (lastGuess+n/lastGuess)/2;
while(Math.abs(lastGuess-nextGuess)>0.0001)
{
lastGuess=nextGuess;
nextGuess=(nextGuess+n/nextGuess)/2;
}
return nextGuess;
}
}
6.23
import java.util.Scanner;
public class book {
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
System.out.print("Enter the string: ");
String s = input.next();
System.out.print("Enter the char: ");
char c = input.next().charAt(0);
System.out.println("The number of "+c+" in "+s+" is "+count(s,c));
}
public static int count(String str, char a)
{
int jb=0;
for(int i=0;i<str.length();i++)
{
if(str.charAt(i)==a)
jb++;
}
return jb;
}
}
6.24
👨🐰🌶
6.25
import java.util.Scanner;
public class book {
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
System.out.print("Enter the milliseconds: ");
long ass = input.nextLong();
System.out.println(convertMillis(ass));
}
public static String convertMillis(long millis)
{
long s =millis/1000;
long se = s%60;
s/=60;
long min = s%60;
s/=60;
long h = s;
return h+":"+min+":"+se;
}
}
6.26
public class book {
public static void main(String[] args)
{
int count=0;
int base=0;
int dick = 2;
while(count<100)
{
if(isPrime(dick)&&isPalindrome(dick))
{
System.out.print(dick+" ");
count++;
}
if(count%10==0&&count!=base) {
System.out.print('\n');
base+=10;
}
dick++;
}
}
public static boolean isPrime(int n)
{
for(int i=2;i<=n/2;i++)
{
if(n%i==0)
return false;
}
return true;
}
public static boolean isPalindrome(int n)
{
String ass = Integer.toString(n);
for(int i=0;i<ass.length();i++)
{
if(ass.charAt(i)!=ass.charAt(ass.length()-1-i))
return false;
}
return true;
}
}