题目例如以下:

把abcd…s共19个字母组成的序列反复拼接106次,得到长度为2014的串。

接下来删除第1个字母(即开头的字母a)。以及第3个,第5个等全部奇数位置的字母。

得到的新串再进行删除奇数位置字母的动作。如此下去,最后仅仅剩下一个字母,请写出该字母。

答案是一个小写字母。请通过浏览器提交答案。

不要填写不论什么多余的内容。

public class 猜字母 {

    public static void main(String[] args) {

        String str = "abcdefghijklmnopqrs";
String str1 = "";
for (int i = 0; i < 106; i++) {
str1 = str1 + str;
}
System.out.println(str1.length());
boolean[] arr = new boolean[str1.length()];
for (int i = 0; i < arr.length; i++) {
arr[i] = true;// 下标为TRUE时说明字母还在圈里
} int leftCount = str1.length();
int countNum = 0;
int index = 0;
while (leftCount > 1) {
if (arr[index] == true) {// 当在圈里时
if (countNum % 2 == 0) {// 下标为偶数时
arr[index] = false;// 该字母退出圈子
leftCount--;// 剩余字母数目减一
}
countNum++;
}
index++;// 每报一次数,下标加一 if (index == str1.length()) {// 是循环数数,当下标大于n时,说明已经数了一圈,
index = 0;// 将下标设为零又一次開始。
countNum = 0;
}
}
// 打印出最后一个
for (int i = 0; i < str1.length(); i++) {
if (arr[i] == true) {
System.out.println(i);// 输出结果表示下标为1023(第1024个)的字母,即:q
}
}
}
}

另外一种解法:

public class 猜字母1 {
public static void main(String[] args) {
String str2 = ""; String str = "abcdefghijklmnopqrs";
for (int i = 0; i < 105; i++) {
str = str + "abcdefghijklmnopqrs";
} System.out.println(str.length()); while (str.length() != 1) {
for (int i = 0; i < str.length(); i++) {
if (i % 2 == 1) {
str2 += str.charAt(i);
}
}
str = str2;
str2 = "";
System.out.println(str);
}
}
}

相对而言另外一种更好理解。答案更easy找到

Java算法试题--猜字母/杀人游戏的更多相关文章

  1. 猜字母游戏(Java)

    我的代码: package day20181025; import java.util.Arrays; import java.util.Scanner; /** * 猜字母 * @author Ad ...

  2. Java入门第38课——猜字母游戏之设计程序结构

    问题        本案例需要实现猜字母游戏程序中的程序结构 方案        分析猜字母游戏可以看出,程序首先需要随机产生5个不同的字母作为需要猜测的结果,因此,可以先定义一个方法,以实现此功能: ...

  3. Java入门第37课——猜字母游戏之设计数据结构

    问题        有猜字母游戏,其游戏规则为:程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统提示结果.如果猜测的完全正确,则游戏结 ...

  4. Java入门第39课——猜字母游戏之实现字母生成方法

    问题        实现猜字母游戏中的字母生成方法,即,随机生成5个不同的字母作为猜测的结果. 方案        实现generate方法,首先声明一个字符类型的数组,用于存储26个大写字母,然后声 ...

  5. Java实现蓝桥杯历届试题填字母游戏

    题目描述 小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: "我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了". K大师在纸上画了一行n个格子,要小 ...

  6. Java实现蓝桥杯VIP算法训练 相邻字母

    试题 算法训练 相邻字母 资源限制 时间限制:1.0s 内存限制:256.0MB [问题描述] 从键盘输入一个英文字母,要求按字母的顺序打印出3个相邻的字母,指定的字母在中间.若指定的字母为Z,则打印 ...

  7. java程序练习:猜字母

    猜字母程序=数据结构+算法 首先:定义数据结构1.找名词Input:输入变量Output:输出变量隐含:找到隐含的变量,如字符串 其次:定义算法,程序的处理 最后:按照顺序,逐步实现 注意:1.基本数 ...

  8. Java基础知识强化之IO流笔记70:Properties练习之 如何让猜数字小游戏只能玩5次的案例

    1. 使用Properties完成猜数字小游戏只能玩5次的案例: 2. 代码实现: (1)猜数字游戏GuessNumber: package cn.itcast_08; import java.uti ...

  9. java猜数字小游戏

    /* * * 猜数字小游戏 * * 先由系统生成一个2-100之间的随机数字, * * 然后捕获用户从控制台中输入的数字是否与系统生成的随机数字相同, * * 如果相同则统计用户所猜的次数,并给出相应 ...

随机推荐

  1. 8.11-8.16:usaco

    summary:57 bzoj1741:裸二分图最大匹配 #include<cstdio> #include<cstring> #include<iostream> ...

  2. acdream 小晴天老师系列——苹果大丰收(DP)

    小晴天老师系列——苹果大丰收 Problem Description 小晴天的后花园有好多好多的苹果树,某天,苹果大丰收~小晴天总共摘了M个苹果,我们假设苹果之间是不可分辨的. 为了保存苹果,小晴天买 ...

  3. maven pom.xml加载不同properties配置

    1.pom.xml =========================== <!-- 不同的打包环境配置: test=开发/测试测试环境,  product=生产环境; 命令行方式: mvn c ...

  4. (3)java棧

    java棧和函数调用的关系图 [名词解释]--->java棧是一块线程的私有空间--->java的棧是先进后出的数据结构.函数返回,则该函数的棧帧被弹出.--->一个函数对应一个棧帧 ...

  5. 一位Erlang程序员的自白

    Erlang不能错过的盛宴 (快步进入Erlang的世界) 作者:成立涛 (litaocheng@gmail.com) 作为程序员,我们曾经闻听很多“业界动态”,“技术革新”,曾经接触很多“高手箴言” ...

  6. memcached单点故障与负载均衡

    在上文中,主要教大家如何搭建在windows  IIS 7.5下搭建php环境,使用常见的两种memcached性能监视工具.通过自己动手实践,观察监控工具上数据,相信大家对于memcached的了解 ...

  7. JRebel 5.3.2

    http://www.blogjava.net/xylz/archive/2013/09/15/404098.html   此为单文件版本,无需license文件 IDE(Eclipse.IDEA可能 ...

  8. [zouxianghui] 清空GridPanel的checkbox选中行

    清空GridPanel的checkbox选中行,GridPanel.getSelectionModel().clearSelections();可以清空选中状态

  9. selenium+testNG+Ant

    好几天没写了,抽时间写下,也好有个总结: 1.selenium+testNG+Ant (1)ant 是构建工具 他的作用就是运行你配置好的东西 而tentng.xml你可以认为他是管理test的一个配 ...

  10. CodeForce---Educational Codeforces Round 3 USB Flash Drives (水题)解题报告

    对于这题明显是用贪心算法来解决问题: 下面贴出笔者的代码: #include<cstdio> #include<iostream> #include<algorithm& ...