Java练习题(方法)

这篇博客探讨了两个Java编程问题:1) 猴子大王问题,15只猴子围成一圈按1-7报数,报到7的淘汰,最后的猴子成为大王。通过两种不同解法进行了解析和比较。2) 设计一个数字密码加密方法,根据给定规则对数字进行加密。博客提供了解法一和解法二,并总结了每种方法的特点。
摘要由CSDN通过智能技术生成

猴子大王:

求猴子大王
15个猴子围成一圈选大王,依次1-7循环报数,报到7的猴子被淘汰,直到最后一只猴子称为大王,问:哪只猴子会成为大王?

代码

解法一:

package com.company.day11;/*
Author:
date:
problem:7、求猴子大王
15个猴子围成一圈选大王,依次1-7循环报数,报到7的猴子被淘汰,直到最后一只猴子称为大王,问:哪只猴子会成为大王?

问题:你没有办法跳回到索引值为1的数组

1.定义一个长度为15的数组,for循环遍历数组把1-15赋值
2定义一个计数器(判断是不是等于7),一个操作数(等于7的有几个,操作了几次)
3.if判断计数器count为7就赋值0给对应的数组。
4.把元素值为0的数组删除,即if判断不为0的元素,把不为0的元素放到一个新的数组中
5.返回新的数组的地址
6.用一个变量接收数组的值,输出
*/
public class monkeyprime {
   
//下标代表每只猴子
    static int[] monkey1 = new int[15];
    public static void main(String[] args) {
   
        //循环数组把值赋值给数组
        for (int i = 0; i < monkey1.length; i++) {
   
            monkey1[i] = i;
        }
        monkey(monkey1);
        //把返回的值赋给monkey2
        int[] monkey2=monkey(monkey1);
        System.out.println("大王是"+monkey2[0]);
    }

    public static int[] monkey(int[] monkey1) {
   

        //判断等于7的猴子,等于7那么就把0赋值给他
        int count = 0;//计数器
        while (monkey1.length != 1) {
   
            int c = 0;//淘汰次数
            for (int i = 0; i < monkey1.length; i++) {
   
                count++;
                if (count == 7) {
   
                    monkey1[i] = 0;
                    count = 0;
                    c++;
                }
            }
            //改变数组长度,把等于0的元素除去
        /*
        1.定义一个新的数组,接收不为0的元素。

         */
            int monkeyarr1[] = new int[monkey1.length - c];
            int index = 0;
            for (int i = 0; i < monkey1.length; i++) {
   
                if (monkey1[i] != 0) {
   
                    monkeyarr1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值