回文数、维密、约瑟夫环

回文数

问题描述:

123321是一个非常特殊的数,它从左边读和从右边读是一样的。输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n。

输入格式:

输入一行,包含一个正整数n。

输出格式:

按从小到大的顺序输出满足条件的整数,每个整数占一行。

样例输入:

52

样例输出:

899998

989989

998899

数据规模和约定

1<=n<=54。

分析:

利用回文数性质:(五位)abcba或(六位)abccba

直接输出,不排序

数组保存,不知道多少个(下下策)

集合保存,集合排序(要求高,代码乱)

集合保存,转为数组,排序输出(要求较高,推荐)

package bb;
import java.util.*;
public class 回文数 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
// 回文数性质:(五位)abcba
// 或(六位)abccba
int a, b, c;
n = sc.nextInt();
List<Integer> lst = new ArrayList<Integer>();
for (a = 1; a <= 9; a++) {
for (b = 0; b <= 9; b++) {
for (c = 0; c <= 9; c++) {
if (a + b + c + b + a == n) {
Integer it = Integer.valueOf("" + a + b + c + b + a);
lst.add(it);
}
if (2 * (a + b + c) == n) {
Integer it = Integer.valueOf("" + a + b + c + c + b + a);
lst.add(it);
}
}
}
}
Integer[] arr = new Integer[lst.size()];
lst.toArray(arr);
Arrays.sort(arr);
for (Integer integer : arr) {
System.out.println(integer);
}
sc.close();
}
}

维密

美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。

他曾在1935~1936年应邀来中国清华大学讲学。

一次,他参加某个重要会议,年轻的脸孔引人注目。

于是有人询问他的年龄,他回答说:

“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”

请你推算一下,他当时到底有多年轻。

package bb;
import java.util.HashSet;
public class 维密 {
public static void f1() {
for (int i = 1; i < 100; i++) {
// 年龄的4次方是个6位数
int i3 = (int) Math.pow(i, 3);
int i4 = (int) Math.pow(i, 4);
if (("" + i3).length() == 4 && ("" + i4).length() == 6) {
// 这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。
String i10 = "" + i3 + i4;
char[] charArray = i10.toCharArray();
HashSet<Character> hashSet = new HashSet<Character>();
for (char c : charArray) {
hashSet.add(c);
}
if (hashSet.size() == 10) {
System.out.println(i);
}
} else {
continue;
}
}
}
public static void main(String[] args) {
f1();
}
}

约瑟夫环

1)10人围一圈

2)从1开始报数,凡是报到3的人被淘汰,然后再从下一个人继续数下去,直到最后只剩下一个人为止

3)输出最后一个人的编号

题目

package bb;
import java.util.Vector;
public class 约瑟夫环 {
public static void main(String[] args) {
Vector<Integer> a = new Vector<Integer>();
for (int i = 0; i < 10; i++) {
a.add(i + 1);
}
for (;;) {
if (a.size() == 1) {
break;
}
for (int i = 0; i < 2; i++) {
a.add(________________);// ←填空
}
a.remove(0);
}
System.out.println(a);
}
}

解析:

package bb;
// 以列表模拟循环队列:首接尾
// 1,2,3,4,5,6,7,8,9,10
// 第一轮:1,2[删3]4,5,6,7,8,9,10,1,2...(循环:10数完了就该数1,2)
// 第二轮:1,2[删3]4,5[删6]7,8,9,10,1,2,4,5...(循环:10数完了就该数1,2,4,5)
// 跳两个,删第3个(跳的两个,接到列表最后:其实是模拟循环--首接尾)
import java.util.Vector;
public class 约瑟夫环 {
public static void main(String[] args) {
Vector<Integer> a = new Vector<Integer>();
for (int i = 0; i < 10; i++) {
a.add(i + 1);
}
for (;;) {
if (a.size() == 1) {
break;
}
for (int i = 0; i < 2; i++) {
a.add(a.remove(0));// ←填空(一句分为两句更好理解)
}
a.remove(0);
}
System.out.println(a);
}
}

蓝桥杯——Java集合练习题的更多相关文章

  1. 蓝桥杯java试题《洗牌》

    问题描述 小弱T在闲暇的时候会和室友打扑克,输的人就要负责洗牌.虽然小弱T不怎么会洗牌,但是他却总是输. 渐渐地小弱T发现了一个规律:只要自己洗牌,自己就一定会输.所以小弱T认为自己洗牌不够均匀,就独 ...

  2. 蓝桥杯java历年真题及答案整理1~20.md

    蓝桥杯java历年真题及答案整理(闭关一个月,呕心沥血整理出来的) 1 算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种.如:给定 A.B.C三个不同的字符,则结果为:A ...

  3. 蓝桥杯Java真题解析

    上个月参加蓝桥杯省赛拿了个省一,自从比赛完之后就一直没怎么写代码了,还有一个多月就要国赛了,从现在开始准备下国赛,但是我也不想学什么算法,而且我还在准备考研,所以就打算只做下历年的真题,争取国赛拿个国 ...

  4. 【备考06组01号】第四届蓝桥杯JAVA组A组国赛题解

    1.填算式 (1)题目描述     请看下面的算式:     (ABCD - EFGH) * XY = 900     每个字母代表一个0~9的数字,不同字母代表不同数字,首位不能为0.     比如 ...

  5. 第八届蓝桥杯java b组第六题

    标题:最大公共子串 最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少. 比如:"abcdkkk" 和 "baabcdadabc",可以找 ...

  6. 46-2016 蓝桥杯 java B 组

    1.煤球数目 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100层,共有多少个煤 ...

  7. 36-2018 蓝桥杯Java B组试题及答案

    1:第几天2000年的1月1日,是那一年的第1天.那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 用excel算,答案125. 2.标题:方格计数 ...

  8. 2019蓝桥杯Java第十题大学生B组——最短路径思想

    题目: 代码: package priv.tzk.lanqiao.ten; import java.io.IOException; import java.util.Scanner; public c ...

  9. 第三届蓝桥杯Java高职组决赛第三题

    题目描述: 某少年宫引进了一批机器人小车.可以接受预先输入的指令,按指令行动.小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字). 例如,我们可以对小车输入如 ...

随机推荐

  1. 撤销rebase与git原理

    git对象 git是面向对象的,对象存储在.git/objects文件夹中.此文件夹中,一个对象就是一个文件,文件名就是对象的id 提交commit的时候,每个文件都是一个数据对象,一个树对象会用来维 ...

  2. Luogu P4208 [JSOI2008]最小生成树计数

    题意 给定一个 \(n\) 个点 \(m\) 条边的图,求最小生成树的个数. \(\texttt{Data Range:}1\leq n\leq 100,1\leq m\leq 10^4\) 题解 一 ...

  3. flask-profiler的使用

    使用 profiler测量在你的Flask 应用程序中定义的端点:并通过web界面提供细粒度的报告. 它给出了这些问题的答案: 应用程序中的瓶颈在哪里? 应用程序中最慢的终结点? 哪些是最常被调用的终 ...

  4. Java学习的第四十一天

    1.例4.4内置函数 public class cjava { public static void main(String[] args) { int i=10,j=20,k=30,m; m=max ...

  5. Elasticsearch数据库 | Elasticsearch-7.5.0应用搭建实战

    Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎.-- Elastic Stack 官网 搭建Elasticsearch的"那些事儿" ...

  6. Dapr Golang HTTP 调用

    Dapr Golang HTTP 调用 版本介绍 Go 版本:1.15 Dapr Go SKD 版本:0.11.1 工程结构 从上图可知,新建 3 个 Go 启动项目,cmd 为启动项目目录,其中 c ...

  7. OpenCV计算机视觉学习(10)——图像变换(傅里叶变换,高通滤波,低通滤波)

    如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 在数 ...

  8. python数据分析03Python的数据结构、函数和文件

    我们会从Python最基础的数据结构开始:元组.列表.字典和集合.然后会讨论创建你自己的.可重复使用的Python函数.最后,会学习Python的文件对象,以及如何与本地硬盘交互. 3.1 数据结构和 ...

  9. 利用sklearn实现knn

    基于上面一篇博客k-近邻利用sklearns实现knn #!/usr/bin/env python # coding: utf-8 # In[1]: import numpy as np import ...

  10. 【涂鸦物联网足迹】API及SDK介绍

    前序系列文章>>> [涂鸦物联网足迹]物联网主流通信方式 我们系列文章,都会围绕如何完成一款智能"隔空接吻机"的开发.希望能帮到各异地恋or异国恋的情侣们! 本文 ...