第四章典型练习题

定义函数,题目规定使用public static int sunDigits(long n){

}

开头

import java.util.Scanner;
class Ds4_01{
    public static void main(String[] args){
        //1.先输入一个数字
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个数字:");
        long num=scanner.nextLong();
        //2.调用函数将num拆分求和
        int sum=sumDigits(num);
        System.out.println(sum);
    }
    public static int sumDigits(long n){
        int sum=0;
        while(true){
            sum+=n%10;
            n/=10;
            if(n==0){
                return sum;
            }
        }
    }
}

import java.util.Scanner;
class Ds4_02{
    public static void main(String[] args){
        //1.提示用户输入一个数字
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个数字:");
        int num=scanner.nextInt();
        //2.判断该数字是否是一个回文
        if(isPalindrome(num)){  // pause1
            System.out.println("是回文");
        }else{
            System.out.println("不是回文");
        }
        //return ;
    }
    public static boolean isPalindrome(int num){
        //1.先计算该数字的反序
        //2.对比反序的数字和数字本身
                //pasue 2
        return reverse(num)==num; 
    }
    public static int reverse(int num){
        int sum=0;
        while(true){
            sum=sum*10+num%10;
            num/=10;
            if(num==0){
                return sum;
            }
        }
    }
}

import java.util.Scanner;
class Ds4_03{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入行数:");
        displayPattern(scanner.nextInt());
    }
    public static void displayPattern(int line){
        for(int i=1;i<=line;i++){
            for(int k=1;k<=line-i;k++){
                if(line<10){
                    System.out.print("  ");
                }else{
                    System.out.print("   ");
                }
            }
            for(int j=i;j>=1;j--){
                if(line<10){
                    System.out.printf("%-2d",j);
                }else{
                    System.out.printf("%-3d",j);
                }
            }
            System.out.println();
        }
    }
}

import java.util.Scanner;
class Ds4_04{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        System.out.print("请用户输入字符串:");
        String str=input.next();
        char[] num = str.toCharArray();//将字符串转化成字符数组
        int count1=0;//记录字母的个数
        int count2=0;//记录数字的个数
        while(true){
            for(int i=0;i<num.length;i++){
                if(charIsInclude(num[i])){
                    count1++;
                }else{
                    count2++;
                }
            }
            /*
            如果是true——就是字母
            否则是——数字
             */
            if(count1+count2<8 && count1+count2>8){
                System.out.println("Invalid Password");
                break;
            }else{
                if(count2>=2&&count1>=1){
                    System.out.println("Valid Password");
                    break;
                }else{
                    System.out.println("Invalid Password");
                    break;
                }
            }
            
        }
    }
    //判断一个字符是否包含字母和数字
    public static boolean charIsInclude(char num){
        boolean flag=true;
        if(num>='a'&&num<='z' || num>='A'&&num<='Z'){
            flag=true;
        }else if(num>='0'&&num<='9'){
            flag=false;
        }
        return flag;
    }
}

class Ds4_05{
    public static void main(String[] args){
        System.out.println(sqrt(9));
    }
    public static double sqrt(long n){
        double lastGuess=1;
        double nextGuess=(lastGuess+n/lastGuess)/2;
        while(true){
            if(Math.abs(nextGuess-lastGuess)<0.00001){
                return nextGuess;
            }
            lastGuess=nextGuess;
            nextGuess=(lastGuess+n/lastGuess)/2;
        }
    }
}

class Ds04_06{
    public static void main(String[] args){
        int count=0;    //表示回文素数的个数
        int num=2;      //表示可能的回文素数的数字 从2开始~?
        while(true){
            //如果num是 回文素数
            if(isHuiWenAndSuShu(num)){
                count++;
                System.out.print(num+" ");
                if(count%10==0){
                    System.out.println();
                }
            }
            if(count==100){
                break;
            }
            num++;
        }
    }
    public static boolean isHuiWenAndSuShu(int num){
        return isHuiWen(num)&&isSuShu(num);
    }
    public static boolean isHuiWen(int num){
        return reverse(num)==num;
    }
    public static int reverse(int num){
        int sum=0;
        while(true){
            sum=sum*10+num%10;
            num/=10;
            if(num==0){
                return sum;
            }
        }
    }
    public static boolean isSuShu(int num){
        for(int i=2;i<=num/2;i++){
            if(num%i==0){
                return false;
            }
        }
        return true;
    }
}

class Ds4_07{
    public static void main(String[] args){
        int count=0;
        int num=2;
        while(true){
            if(isFanZhuanSuShu(num)){
                count++;
                System.out.print(num+" ");
                if(count%10==0){
                    System.out.println();
                }
            }
            if(count==100){
                return; //结束当前函数
            }
            num++;
        }
    }
    //1.本身是素数
    //2.反转之后也是素数
    //3.不能是回文
    //素数()  反转() 回文功能()
    public static boolean isFanZhuanSuShu(int num){
        return isSuShu(num)&&isSuShu(reverse(num))&&!isHuiWen(num);
    }
    //回文功能
    public static boolean isHuiWen(int num){
        return reverse(num)==num;
    }
    //素数功能
    public static boolean isSuShu(int num){
        for(int i=2;i<=num/2;i++){
            if(num%i==0){
                return false;
            }
        }
        return true;
    }
    //反转功能
    public static int reverse(int num){
        int sum=0;
        while(true){
            sum=sum*10+num%10;
            num/=10;
            if(num==0){
                return sum;
            }
        }
    }
}

import java.util.Scanner;
class Ds4_08{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        System.out.print("请用户输入一个字符串和一个字母:");
        String str1=input.next();//接受用户所输入的字符串
        char inputChar = input.next().charAt(0);//接受用户所输入的字母
        System.out.println(count(str1,inputChar));
    }
    public static int count(String str,char a){
        int count=0;//记录一个字符串中一个字母所出现的个数
        char[] c=str.toCharArray();//将用户所传入的字符串转化成字符数组
        for(int i=0;i<c.length;i++){
            if(c[i]==a){
                count++;
            }
        }
        return count;
    }
}

import java.util.Scanner;
class Ds4_09{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        System.out.print("Enter a string:");
        String str=input.next();//接受用户所输入的字符串
        /*String str1=" ";
        char[] c=str.toCharArray();//将字符串转化成字符数组
        for(int i=0;i<c.length;i++){
            str1=str1+c[c.length-i-1];
        }*/
        System.out.print(fanXuShu(str));
    }
    public static String fanXuShu(String str){
        String str1="";
        char[] c=str.toCharArray();//将字符串转化成字符数组
        for(int i=0;i<c.length;i++){
            str1=str1+c[c.length-i-1];
        }
        return str1;
    } 
}

import java.util.Scanner;
class Ds4_10{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        System.out.print("Enter a string:");
        String str1=input.nextLine();//接受用户所输入的字符串
        System.out.println("The number of uppercase letters is:"+isBig(str1));
    } 
    public static int isBig(String str){
        int count=0;//记录大写字母的个数
        char[] c=str.toCharArray();//将传入的字符串转化为数组
        for(int i=0;i<c.length;i++){
            if(c[i]>='A'&&c[i]<='Z'){
                count++;
            }
        }
        return count;
    }
}

import java.util.Scanner;
class Ds4_12{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        System.out.print("请输入十六进制的字符串:");
        String str=input.next();
        System.out.println("转化之后的数值为:"+hextToDecimal(str));
    }
    public static int hextToDecimal(String hext){
        int sum=0;
        int temp=0,count=0;
        char[] c=hext.toCharArray();
        for(int i=0;i<c.length;i++){
            if(c[c.length-i-1]>='0'&&c[c.length-i-1]<='9'){
                sum=sum+(c[c.length-i-1]-'0')*(int)(Math.pow(16,count++));
                //System.out.println("c[i]-'0'的数值为:"+(c[i]-'0'));
                //System.out.println("sum的数值为:"+sum);
            }else if(c[c.length-i-1]>='A'&&c[c.length-i-1]<='F'){
                switch(c[c.length-i-1]){
                    case 'A': temp=10;break;
                    case 'B': temp=11;break;
                    case 'C': temp=12;break;
                    case 'D': temp=13;break; 
                    case 'E': temp=14;break;
                    case 'F': temp=15;break;
                }
                sum=sum+temp*(int)Math.pow(16,count++);
                //System.out.println("sum的数值为:"+sum);
            }
        }
        return sum;
    }
}

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值