《Java语言程序设计与数据结构》编程练习答案(第六章)(二)

《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;
    }
}
  • 8
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值