
算法题
星空那片海-
Never give up and keep trying!
展开
-
九九乘法表-正三角和倒三角的实现
一、正三角 public class MulTable{ public static void main(String[] args) { for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"x"+i+"="+j*i+"\t"); } Sys...原创 2017-10-29 13:50:37 · 20254 阅读 · 0 评论 -
位平方和
题目:把一个整数的每个数位都平方后求和,又得到一个整数,我们称这个整数为位平方和。对新得到的整数仍然可以继续这一运算过程。比如,给定整数为4,则一系列的运算结果为:16,37,58,89,....本题的要求是,已知一个整数x,求第n步的运算结果。数据格式要求:输入,两个整数x n,中间以空格分开。表示求x的第n步位平方和。其中,x,n都大于0,且小于100000原创 2017-11-30 15:35:56 · 620 阅读 · 0 评论 -
调和级数
1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。但是,它发散的很慢:前1项和达到 1.0前4项和才超过 2.0前83项的和才超过 5.0那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?public class Main{ public static原创 2018-03-05 20:04:04 · 2006 阅读 · 0 评论 -
五位数的回文素数
题目:10301是个5位的素数。它有个特点,把数字倒过来还是它本身,具有这样特征的素数,我们称之为:回文素数。10501、10601、11311········这些都是5位的回文素数。请你计算一下,像这样的5位数的回文素数,一共有多少个?public class Main { public static void main(String原创 2017-11-30 14:24:08 · 4002 阅读 · 0 评论 -
海盗喝酒
题目:海盗在船上比拼酒量,过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”请你根据这些信息,推断原创 2017-11-29 19:44:42 · 309 阅读 · 0 评论 -
小明赌牌
题目:小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?public class Main { public static void main(String[] args) { int原创 2017-11-29 20:12:28 · 517 阅读 · 0 评论 -
立方变自身
观察下面的现象,某个数字的立方,按位累加仍然等于自身。1^3 = 1?8^3 ?= 512 ? ?5+1+2=817^3 = 4913 ? 4+9+1+3=17...请你计算包括1,8,17在内,符合这个性质的正整数(10000以内)一共有多少个?public class Main { public static void main(String[] args) {原创 2017-12-05 22:37:33 · 295 阅读 · 0 评论 -
生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。public class Main { public static void main(St原创 2018-01-02 22:40:17 · 239 阅读 · 0 评论 -
密码脱落
X星球的考古学家发现了一批古代留下来的密码。这些密码是由A、B、C、D 四种植物的种子串成的序列。仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。你的任务是:给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。输入一行,表示现在看到的密码串(长度不大原创 2018-03-17 18:12:27 · 408 阅读 · 0 评论 -
拉马车
小的时候,你玩过纸牌游戏吗?有一种叫做“拉马车”的游戏,规则很简单,却很吸引小朋友。其规则简述如下:假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机的纸牌序列如下:A方:[K, 8, X, K, A, 2, A, 9, 5, A]B方:[2, 7, K, 5, J, 5, Q, 6, K, 4]其中的X表示“10”,我们忽略了纸牌的花色。从A方开始,A、B双原创 2018-03-11 14:49:05 · 5189 阅读 · 0 评论 -
四平方和
四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去,就正好可以表示为4个数的平方和。比如:5 = 0^2 + 0^2 + 1^2 + 2^27 = 1^2 + 1^2 + 1^2 + 2^2(^符号表示乘方的意思)对于一个给定的正整数,可能存在多种平方和的表示法。要求你对4个数排序:0 并对所有的可能表示法按 a原创 2017-12-06 22:26:15 · 344 阅读 · 0 评论 -
搭积木
小明最近喜欢搭数字积木,一共有10块积木,每个积木上有一个数字,0~9。搭积木规则:每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。最后搭成4层的金字塔形,必须用完所有的积木。下面是两种合格的搭法: 0 1 2 3 4 56 7 8 9 0 3 1 7 5 29 8 6 4 请原创 2018-03-10 13:33:22 · 300 阅读 · 0 评论 -
凑算式
B DEFA + --- + ------- = 10 C GHI 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?解决方法:暴力破解public class Main { publi原创 2018-01-02 11:39:25 · 365 阅读 · 0 评论 -
平方怪圈
如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。对新产生的正整数再做同样的处理。如此一来,你会发现,不管开始取的是什么数字,最终如果不是落入1,就是落入同一个循环圈。请写出这个循环圈中最大的那个数字。请填写该最大数字。import java.util.Scanner;public class Main { public static原创 2018-01-01 22:21:59 · 450 阅读 · 0 评论 -
外星日历
某星系深处发现了文明遗迹。他们的计数也是用十进制。他们的文明也有日历。日历只有天数,没有年、月的概念。有趣的是,他们也使用了类似“星期”的概念,只不过他们的一个星期包含了9天,为了方便,这里分别记为: A,B,C....H,I从一些资料上看到,他们的23日是星期E他们的190日是星期A他们的343251日是星期I令人兴奋的是,他们居然也预见了“世原创 2017-12-21 22:15:56 · 1413 阅读 · 0 评论 -
打印大X
小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。为了便于比对空格,所有的空白位置都以句点符来代替。要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0要求输出一个大X例如,用户输入:3 9程序应该输出:***.....***.***...***...***.***.....*****.......原创 2018-01-06 15:23:11 · 807 阅读 · 0 评论 -
Excel地址
问题描述 Excel单元格的地址表示很有趣,它使用字母来表示列号。 比如, A表示第1列, B表示第2列, Z表示第26列, AA表示第27列, AB表示第28列, BA表示第53列, .... 当然Excel的最大列号是有限度的,所以转换起来不难。 如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列呢?原创 2017-12-30 14:30:35 · 3447 阅读 · 0 评论 -
16、10、8进制
import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); String str=sc.nextLine(); String h=Integer.toHexString(Intege原创 2018-01-14 15:55:10 · 474 阅读 · 0 评论 -
自守数
题目:如果某个数的平方的末尾几位数等于这个数本身,那么就称这个数为自守数。例如,5是自守数,5*5=25。编程找出10000以内的所有自守数。public class ZiShouNum { public static void main(String[] args) { for(int i=1;i<10000;i++){ int j=10;原创 2017-11-16 16:41:12 · 922 阅读 · 1 评论 -
完全数
题目:完全数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数),恰好等于它本身。例如,6就是完全数,6的约数有1、2、3、6,除去本身6外,1+2+3=6。编程找出10000以内的所有完全数。原创 2017-11-16 16:35:05 · 790 阅读 · 0 评论 -
奇怪的分式
题目:上小学的时候,小明经常自己发明新算法。一次,老师出的题目是: 1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 ,老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼! 对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢? 请写出所有不同算式的个数(包括题中举例的)。原创 2017-11-27 17:18:14 · 210 阅读 · 0 评论 -
插入排序-直接插入排序
import java.util.Scanner;public class InsertSort { public static void main(String[] args) { Scanner scan=new Scanner(System.in); //定义数组长度 int count=scan.nextInt(); int [] arr=new ...原创 2017-10-30 22:55:35 · 251 阅读 · 0 评论 -
选择排序-简单选择排序
import java.util.Scanner;public class SelectSort { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int count=scan.nextInt(); int [] arr=new int[count]; for(in...原创 2017-11-01 20:39:32 · 189 阅读 · 0 评论 -
百钱百鸡
题目:现有100钱,要买100鸡,已知母鸡5钱一只,公鸡3钱一只,小鸡1钱三只,找出用100钱买100只鸡的方案。java代码实现如下:public class MoneyChook { public static void main(String[] args) { int hen; int cock; int chicken; ...原创 2017-11-01 21:09:53 · 297 阅读 · 0 评论 -
求出一维数组中的最大值和最小值
import java.util.Scanner;public class MaxMin { public static void main(String[] args) { Scanner scan=new Scanner(System.in); System.out.println("输入数组的长度:"); int count=scan.nextInt(); S...原创 2017-11-03 17:24:49 · 12387 阅读 · 0 评论 -
交换排序之冒泡排序
import java.util.Scanner;public class BubbleSort { public static void main(String[] args) { Scanner scan=new Scanner(System.in); //为数组添加数的个数 int count=scan.nextInt(); //为数组命名的长度 int [] a...原创 2017-10-27 19:03:21 · 214 阅读 · 0 评论 -
格子中输出
stringInGrid方法会在一个指定大小的格子中打印指定的字符串。要求字符串在水平、垂直两个方向上都居中。如果字符串太长,就截断。如果不能恰好居中,可以稍稍偏左或者偏上一点。对于题目中数据,应该输出:源码如下,只需填写“填空”的位置:public class Main { public static void main(String[]原创 2018-03-26 15:31:40 · 316 阅读 · 0 评论 -
验证歌德巴赫的猜想
题目:用户输入一个大于6的偶数,把它分解为两个质数的和,如输入12,输出12=5+7.原创 2017-11-02 22:03:54 · 633 阅读 · 0 评论 -
核桃的数量
题目:小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是: 1.各组的核桃数量必须相同。 2.各组内必须能平分核桃。 3.尽量提供满足1,2条件的最小数量。输入:3个正整数,用空格分开,表示3组正在加班的人数。输出:一个正整数,表示每袋原创 2017-11-06 22:30:39 · 521 阅读 · 0 评论 -
算术运算
题目:通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。输入:输入由多组测试数据组成。第一行输入一个整数t,表示测试数据的组数。输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。输出:输出有t行,每行依次对应一组测试数据的运算结果。提示:操作数为正整数,不需要考虑计算结果溢出的情况, 若输入原创 2017-11-06 22:15:57 · 269 阅读 · 0 评论 -
特殊回文数
123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。 输入格式 输入一行,包含一个正整数n。 输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。 样例输入 52 样例输出 899998 989989 998899 数据规模和约定 1原创 2018-03-21 14:13:24 · 504 阅读 · 0 评论 -
手机尾号评分
30年的改革开放,给中国带来了翻天覆地的变化。2011全年中国手机产量约为11.72亿部。手机已经成为百姓的基本日用品! 给手机选个好听又好记的号码可能是许多人的心愿。 但号源有限,只能辅以有偿选号的方法了。 这个程序的目的就是:根据给定的手机尾号(4位),按照一定的规则来打分。其规则如下: 1. 如果出现连号,不管升序还是降序,都加5分。例如:5678,4321都满足加分标准原创 2018-03-21 13:39:13 · 2454 阅读 · 1 评论 -
阶乘末尾
import java.util.Scanner;public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int len=sc.nextInt(); if(n>30||len>原创 2018-03-20 22:04:25 · 330 阅读 · 0 评论 -
最大公约数和最小公倍数
import java.util.Scanner;public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int b=sc.nextInt(); int gcd=gcd(a,原创 2017-11-04 14:50:10 · 303 阅读 · 0 评论 -
第39级台阶
题目:小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的走法呢?解析图如下:public class Stair { public static void原创 2017-11-13 22:32:58 · 342 阅读 · 0 评论 -
递归算法
题目:利用递归算法,打印出0至9的数字。public class RcsAlgo { public static void main(String[] args) { recursion(0, 9); } private static int recursion(int a,int b){ if(a>b){ return 0; }else{ Sy原创 2017-11-13 22:28:26 · 156 阅读 · 0 评论 -
李白打酒
题目:话说大诗人李白,一生好饮。幸好他从不开车。一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:无事街上走,提壶去打酒。逢店加一倍,遇花喝一斗。这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算原创 2017-11-30 16:22:23 · 261 阅读 · 0 评论 -
兔子产仔
题目:一般而言,兔子在出生2个月后就有繁殖能力,一对兔子每个月能生出一对小兔子来,如果所有兔子都不死,那么经过n个月总共有多少对兔子?输入:输入由多组测试数据组成。第一行输入一个整数t,表示测试数据的组数,接下来的t行,每行输入一个月份n。原创 2017-11-12 14:45:00 · 442 阅读 · 0 评论 -
循环节长度
两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。比如,11/13=6=>0.846153846153..... 其循环节为[846153] 共有6位。下面的方法,可以求出循环节的长度。请仔细阅读代码,并填写划线部分缺少的代码。public static int f(int n, int m){n = n % m; Vector v = new原创 2018-01-04 22:04:30 · 557 阅读 · 0 评论 -
无穷分数
无穷的分数,有时会趋向于固定的数字,请计算图所示的无穷分数,要求四舍五入,精确到小数点后5位,小数位不足的补0。请填写该浮点数,不能填写任何多余的内容。import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner sc=new S原创 2018-01-04 19:22:24 · 1368 阅读 · 3 评论