java练题笔记-DAY1

1·回文数的实现

核心在于倒序后的数字与原来一样

public class example {
    public static void main(String[] args) {
        //核心思路:倒序后的数字与原来一样

        //定义数字
        int x=1221;
        int temp=x;
        int num=0;
        //设置循环
        while(x !=0){
            int ge=x%10;
            x=x/10;
            num=num*10+ge;
        }

        System.out.println(num==temp);
    }
}

通过循环实现对不同位次的数字进行倒序。

2· 不使用除法,乘法和求余符号求商和余

采用循环,多次用 被除数减去除数 求出所需答案

public class exmaple2 {
    public static void main(String[] args) {
        //定义变量
        int x1=156;
        int x2=7;
        int temp=0;
        int a;
        //被除数 / 除数 =商 ... 余数
        if(x1<x2){
            System.out.println("商为0");
        }
        while(x1>=x2){
             x1=x1-x2;
             temp++;
        }
        System.out.println("商为:"+temp);
        System.out.println("余数为"+x1);
    }
}

3·随机数版逢七过

主要复习java随机数的使用方法

mport java.util.Random;
public class 逢7过 {
    //获得键盘输入数据方法
    //1` 导包 import java.util.Scanner;
    //2` Scanner sc=new Scanner(System.in);
    //3` int i=sc.nextInt();
//    获得随机数方法
//    1` 导包 import java.util.Random;
//    2` 创建对象 Random r=new Random();
//    3` 生成随机数  int number=r.nextInt(随机数范围);
    public static void main(String[] args) {
        Random r=new Random();

        for(int i=0;i<100;i++){
            int number=r.nextInt(100)+1;//在0~9
            if(number % 7 !=0 && number /10 !=7 && number % 10 !=7){
                System.out.println(number);
            }
        }

    }

4·交换数组数据

复习数组的一些用法

(1)数组逆序

int arr[]={1,2,3,4,5};
        for(int i=0,j=arr.length-1;i<j;i++,j--){          
        int temp=arr[i];
            arr[i]=arr[j];
           arr[j]=temp;
        }
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]);

(2)首尾 交换

int arr[]={1,2,3,4,5};
        int temp=0;
         temp=arr[arr.length-1];
               arr[arr.length-1]  =arr[0];
              arr[0]=temp;
        System.out.println(arr[0]+" "+arr[arr.length-1]);

5`求100~200范围内质数的方法

利用循环,以此对被求数进行求余操作即可。

for(int i=101;i<=200;i++){
            if(method(i)){
                System.out.println(i);
            }
        }
    }

    private static boolean method(int i) {

        for(int j=2;j<i;j++){
            if(i%j==0){
                return true;
            }
        }
        return false;
    }

6·开发验证码问题

核心在于 大小写字母的 的随机抽取

public class 开发验证码和数组复制 {
    //如果要在一顿没有什么规律的数据中任意抽取数据,可以将这些数据放入到数组中,利用索引进行抽取
    public static void main(String[] args) {
        char[] chs=new char[52];
        for (int i = 0; i < chs.length; i++) {
            if(i<=25){
                //添加小写字母 a--97
                chs[i]=(char)(97+i);
            }else
            {//添加大写字母 A--65
                chs[i]=(char)(65+i-26);
            }
        }
        System.out.println("验证码为:");
        //随机抽取4次字母
        Random r=new Random();
        for(int a=0;a<4;a++){
            int ran=r.nextInt(chs.length);
            //获取相对应的元素
            System.out.print(chs[ran]);
        }
    int c=r.nextInt(9);
        System.out.print(c);
    }

7·彩票双色球问题

可使用switch语句判断红球数量

public class 彩票双色球 {
    public static void main(String[] args) {
        //随机生成中奖号码
        int arr1[]=new int[6];
        int arr2;
        Random r=new Random();
        //红球
        for (int i = 0; i < arr1.length; i++) {
            arr1[i]=r.nextInt(33)+1;
        }
        //篮球
        arr2=r.nextInt(16)+1;
        //中奖号码
        int arr3[]=new int[7];
        for (int i = 0; i < arr3.length-1; i++) {
            arr3[i]=arr1[i];
        }
        arr3[arr3.length-1]=arr2;
        System.out.println("中奖号码为");
        for (int i = 0; i < arr3.length; i++) {
            System.out.print(arr3[i]+"  ");
        }
        //用户输入中奖号码
        System.out.println();
        Scanner sc=new Scanner(System.in);
        int arr4[]=new int[7];
        System.out.println("用户请输入中奖号码:");
        for(int i=0;i<7;i++){
            arr4[i]=sc.nextInt();
        }
   //判断中奖情况
        equal(arr4,arr3);
 }

   private static void equal(int[] arr4,int [] arr3) {
        int temp = 0;
        //当有蓝球时
       if (arr4[arr4.length - 1] == arr3[arr3.length - 1]) {
           for (int i = 0; i < arr4.length-1; i++) {
               //判断红球数

               if (arr4[i] == arr3[i]) {
                   temp++;
               }
           }
               switch (temp) {
                   case 6:
                       System.out.println("中了最高1000万奖金");
                       break;
                   case 5:
                       System.out.println("中了3000元奖金");
                       break;
                   case 3:
                       System.out.println("中了10元");
                       break;
                   case 1:
                       System.out.println("中了5元");
                       break;
                   case 4:
                       System.out.println("中了200元");
                       break;
                       default:
                           System.out.println("没有中奖");
               }
           }

       //当没有蓝球时
       else {
           int all = 0;
           for (int i = 0; i < arr4.length; i++) {

               if (arr4[i] == arr3[i]) {
                   all++;
               }
           }
               switch (all) {
                   case 6:
                       System.out.println("中了最高500万奖金");
                       break;
                       default:
                           System.out.println("没有中奖");
               }
       }

       }

8·数字加密问题

核心在于将 数字拆开在合并

public class 数字加密 {
    public static void main(String[] args) {
        System.out.println("请输入密码");
        Scanner sc=new Scanner(System.in);
        int i=sc.nextInt();
        int a=method1(i);
        int b=method2(a);
        System.out.println(b);
    }

    private static int method1(int i) {
        int a=i/1000;
        int b=i/100%10;
        int c=i/10%10;
        int d=(i-1000*a-100*b-10*c);
        a+=5;
        a=a%10;
        b+=5;
        b=b%10;
        c+=5;
        c=c%10;
        d+=5;
        d=d%10;
        int sum=a*1000+b*100+c*10+d;
        return sum;

    }
    private static int method2(int a) {
        int x=a/1000;
        int y=a/100%10;
        int z=a/10%10;
        int d=(a-1000*x-100*y-10*z);
        int arr1[]={x,y,z,d};
        int arr2[]=new int[4];
        for (int i = 0,j=arr1.length-1; i < arr1.length; i++,j--) {
            arr2[j]=arr1[i];
        }
        arr2[0]=arr2[0]*1000;
        arr2[1]=arr2[1]*100;
        arr2[2]=arr2[2]*10;
        int result=arr2[0]+arr2[1]+arr2[2]+arr2[3];
        return result;
    }

9·评委打分

去掉最高分和最低分,求出平均值即可

public class 评委打分 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int arr[] = new int[5];
        System.out.println("6名裁判打分分别为:");
        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt();
            System.out.print(arr[i]+"  ");
        }
        System.out.println();
        int max = getMax(arr);
        int min = getMin(arr);
        System.out.println("处理后的分数为:");
        int score=getScore(arr);


        int avg=(int)(score-max-min)/(arr.length-2);
        System.out.println("最终评分为"+avg);
    }

    private static int getScore(int[] arr) {
         int score=0;
        for (int i = 0; i < arr.length; i++) {
            score+=arr[i];
        }
        return  score;
    }

    private static int getMax(int[] arr) {
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                int temp = arr[i];
                max = arr[i];
                arr[i] = temp;
            }
        }
        return max;
    }

    private static int getMin(int[] arr) {
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (min > arr[i]) {
                int temp = arr[i];
                min = arr[i];
                arr[i] = temp;
            }
        }
        return min;
    }

10·随机数版逢七过

判断逢7过的条件即可

public static void main(String[] args) {
        Random r=new Random();

        for(int i=0;i<100;i++){
            int number=r.nextInt(100)+1;//在0~9
            if(number % 7 !=0 && number /10 !=7 && number % 10 !=7){
                System.out.println(number);
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值