Java算法练习
文章平均质量分 52
Scarlett·S
学海无涯,回头无岸
展开
-
十六进制转二进制(转)
/* * 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。注意 输入的十六进制数不会有前导0,比如012A。...原创 2018-03-21 12:29:33 · 3892 阅读 · 0 评论 -
PAT 5 取球博弈(未完成)
(qdulq-2016-c-B)取球博弈(6 分) 两个人玩取球的游戏。 一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一个数目。 如果无法继续取球,则游戏结束。 此时,持有奇数个球的一方获胜。 如果两人都是奇数,则为平局。 假设双方都采用最聪明的取法, 第一个取球的人一定能赢吗? 试编程解决这个问题。 输入格式: 第一行3个正整数n1 n2 n3,空格分开,表示每次可取的数...原创 2018-03-18 23:07:45 · 142 阅读 · 0 评论 -
PAT 5 四平方和
/*四平方和(qdulq)(110 分) 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和。 如果把0包括进去,就正好可以表示为4个数的平方和。 比如: 5 = 0^2 + 0^2 + 1^2 + 2^2 7 = 1^2 + 1^2 + 1^2 + 2^2 (^符号表示乘方的意思) 对于一个给定的正整数,可能存在多种平方和的表示法。 要求你对4个数...原创 2018-03-18 23:06:05 · 175 阅读 · 0 评论 -
PAT 5 剪邮票
剪邮票如【图1.jpg】, 有12张连在一起的12生肖的邮票。 现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。 请你计算,一共有多少种不同的剪取方法。请填写表示方案数目的整数。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。答案: (19分)public class Main{ ...原创 2018-03-18 22:57:57 · 228 阅读 · 0 评论 -
PAT 5 方格填数(dfs)
方格填数如下的10个格子填入0~9的数字。要求:连续的两个数字不能相邻。 (左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。答案: (15分)public class T4fangge { static int [][]a=new int [3][4]; ...原创 2018-03-18 13:48:44 · 335 阅读 · 0 评论 -
PAT 5 凑算式(dfs)
凑算式这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。A-I代表1-9的数字,不是0-9答案:public class Main{ private static int[] a;...原创 2018-03-18 13:26:29 · 223 阅读 · 0 评论 -
PAT 5-煤球数目
煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。结果填空: (3分)import java.util.Scanner;/* * 1 --1 * 11 -...原创 2018-03-18 12:40:07 · 158 阅读 · 0 评论 -
PAT 5-生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。答案:26import java.util.Scanner;/* *等差数列求和公式:s=n(a1+an)/2 * */public class T2birthday { pub...原创 2018-03-18 12:50:36 · 1092 阅读 · 0 评论 -
VJ2-Two Cakes
B. Two Cakestime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputIt's New Year's Eve soon, so Ivan decided it's high time he started setting the table. ...原创 2018-02-21 19:27:26 · 202 阅读 · 0 评论 -
VJ2-New Year and Counting Cards
A. New Year and Counting Cardstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYour friend has n cards.You know that each card has a lowercase Engli...原创 2018-02-21 18:16:50 · 151 阅读 · 0 评论 -
VJ2-Permute Digits(dp)
C. Permute Digitstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given two positive integer numbers a and b. Permute (cha...原创 2018-02-21 15:14:25 · 143 阅读 · 0 评论 -
PAT 5 猴子吃桃问题(递归)
猴子吃桃问题(15 分) 一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子? 输入格式: 输入在一行中给出正整数N(1<N≤10)。 输出格式: 在一行中输出第一天共摘了多少个桃子。 输入样例: 3 ...原创 2018-03-18 23:09:06 · 2127 阅读 · 0 评论 -
PAT 5 分小组(字符串与字符转换)
分小组-java9名运动员参加比赛,需要分3组进行预赛。有哪些分组的方案呢?我们标记运动员为 A,B,C,... I下面的程序列出了所有的分组方法。该程序的正常输出为:ABC DEF GHIABC DEG FHIABC DEH FGIABC DEI FGHABC DFG EHIABC DFH EGIABC DFI EGHABC DGH EFIABC DGI EFHABC DHI ...原创 2018-03-19 23:05:40 · 194 阅读 · 0 评论 -
PAT 5 抽签(dfs)
抽签-javaX星球要派出一个5人组成的观察团前往W星。其中:A国最多可以派出4人。B国最多可以派出2人。C国最多可以派出2人。....那么最终派往W星的观察团会有多少种国别的不同组合呢?下面的程序解决了这个问题。数组a[] 中既是每个国家可以派出的最多的名额。程序执行结果为:DEFFFCEFFFCDFFFCDEFFCCFFFCCEFFCCDFFCCDEFBEFFFBDFFFB...原创 2018-03-19 23:26:32 · 166 阅读 · 0 评论 -
PAT 1 振兴中华
振兴中华小明参加了学校的趣味运动会,其中的一个项目是:跳格子。地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)从我做起振我做起振兴做起振兴中起振兴中华比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。要求跳过的路线刚好构成“从我做起振兴中华”这句话。...原创 2018-03-21 11:26:08 · 182 阅读 · 0 评论 -
VJ 4 F - ABC087C AtCoder - 3881(dp)
Problem Statement We have a 2×N grid. We will denote the square at the i-th row and j-th column (1≤i≤2, 1≤j≤N) as (i,j).You are initially in the top-left square, (1,1). You will travel to the bo...原创 2018-03-20 11:17:23 · 235 阅读 · 0 评论 -
VJ 4 Traveling
C - TravelingTime limit : 2sec / Memory limit : 256MBScore : 300 pointsProblem StatementAtCoDeer the deer is going on a trip in a two-dimensional plane. In his plan, he will depart from point(0,0) at ...原创 2018-03-20 11:00:41 · 191 阅读 · 0 评论 -
PAT 7 移动距离
移动距离(15 分)X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3... 当排满一行时,从下一行相邻的楼往反方向排号。 比如:当小区排号宽度为6时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 .....我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)要求输出一个整数,表示m n 两楼间最短移动...原创 2018-03-20 10:30:47 · 218 阅读 · 0 评论 -
PAT 7 程序填空
两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。比如,11/13=6=>0.846153846153..... 其循环节为[846153] 共有6位。下面的方法,可以求出循环节的长度。请仔细阅读代码,并填写划线部分缺少的代码。import java.util.Vector;/*两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。比如,11/13=6=>0.84...原创 2018-03-20 10:01:02 · 203 阅读 · 0 评论 -
PAT 7 牌型总数(dfs)
牌型种数小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?请填写该整数,不要填写任何多余的内容或说明文字。 答案:(21分)package PAT7;public class T7...原创 2018-03-20 09:25:47 · 222 阅读 · 0 评论 -
PAT 7 加法变乘法
加法变乘法我们都知道:1+2+3+ ... + 49 = 1225现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015比如:1+2+3+...+1011+12+...+2728+29+...+49 = 2015就是符合要求的答案。 请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。注意:需要你提交的是一个整数,不要填写任何多余的内容。答案:(17分...原创 2018-03-20 08:55:53 · 143 阅读 · 0 评论 -
PAT 7 三羊献瑞(dfs)
三羊献瑞观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞 ----------------------------------------------------------------------------------------------------------------------------------...原创 2018-03-20 08:51:53 · 494 阅读 · 0 评论 -
PAT 7 立方变自身
立方变自身观察下面的现象,某个数字的立方,按位累加仍然等于自身。1^3 = 1 8^3 = 512 5+1+2=817^3 = 4913 4+9+1+3=17...请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个?请填写该数字,不要填写任何多余的内容或说明性的文字。 答案:(5分)public class Main{ public static void mai...原创 2018-03-20 08:31:00 · 123 阅读 · 0 评论 -
PAT 7 星系炸弹(日期转换)
星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。每个炸弹都可以设定多少天之后爆炸。比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19请严格按照格式书写...原创 2018-03-19 23:44:24 · 253 阅读 · 0 评论 -
VJ2-Browser
B. Browsertime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputLuba is surfing the Internet. She currently has n opened tabs in her browser, indexed fro...原创 2018-02-21 13:14:58 · 252 阅读 · 0 评论 -
VJ2-Jamie and Alarm Snooze
A. Jamie and Alarm Snoozetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputJamie loves sleeping. One day, he decides that he needs to wake up at exa...原创 2018-02-21 12:44:07 · 180 阅读 · 0 评论 -
VJ2-Perfect Squares
A. Perfect Squarestime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputGiven an array a1, a2, ..., an of n integers, find the largest number in the arra...原创 2018-02-21 12:16:33 · 214 阅读 · 0 评论 -
PAT1-sine之舞
Sine之舞(qdulq)(40 分)最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。 不妨设 An=sin(1–sin(2+sin(3–sin(4+...sin(n))...) Sn=(...(A1+n)A2+n-1)A3+...+2)An+1 FJ想让奶牛们计算S...原创 2018-02-20 11:47:04 · 116 阅读 · 0 评论 -
PAT1-时间转换
时间转换(qdulq)(24 分)给定一个以秒为单位的时间t,要求用 “H:M:S”的格式来表示这个时间。H表示时间,M表示分钟, 而S表示秒,它们都是整数且没有前导的“0”。例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。输入格式:输入只有一行,是一个整数t(0<=t<=86399)。输出格式:输出只有一行,是以“H:M:S”的格式所表示的时间,不包括...原创 2018-02-20 11:52:40 · 300 阅读 · 0 评论 -
PAT1-前缀判断
前缀判断 如下的代码判断 needle_start指向的串是否为haystack_start指向的串的前缀,如不是,则返回NULL。 比如:"abcd1234" 就包含了 "abc" 为前缀import java.util.*;public class Main{ public static void main(String[] args) { Scanner sc = new Sca...原创 2018-02-20 10:51:00 · 301 阅读 · 0 评论 -
PAT1-世界末日
世纪末的星期曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人称今后的某个世纪末的12月31日,如果是星期一则会....有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! 于是,“谣言制造商”又修改为星期日......1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)...原创 2018-02-18 23:01:34 · 414 阅读 · 0 评论 -
PAT1-黄金连分数(BigDecimal+递归)
黄金连分数黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!!言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多...原创 2018-02-18 22:47:31 · 619 阅读 · 0 评论 -
PAT1-第39级台阶(递归)
第39级台阶小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?请你利用计算机的优势,帮助小明寻找答案。要求提交的是一个整数。注意:不要提交解答过程,...原创 2018-02-18 22:31:51 · 287 阅读 · 0 评论 -
PAT1-马虎算式(暴力+dfs)
马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。有一次,老师出的题目是:36 x 495 = ?他却给抄成了:396 x 45 = ?但结果却很戏剧性,他的答案竟然是对的!!因为 36 * 495 = 396 * 45 = 17820类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54假设 a b c d e 代表1~9...原创 2018-02-18 22:27:14 · 206 阅读 · 0 评论 -
PAT1-高斯日记
高斯日记大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天...原创 2018-02-18 22:18:54 · 300 阅读 · 0 评论 -
PAT01-十进制与二进制的互换
import java.util.Scanner;public class Main { public static void main(String args[]) throws Exception { Scanner input = new Scanner(System.in); System.out.print("Enter a binary number: "); St...原创 2018-02-18 14:57:08 · 251 阅读 · 0 评论 -
PAT01-Switch..case用法
package PAT01;import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner in=new Scanner(System.in); int n=in.nextInt(); Main01 m=new Main01(); String a=...原创 2018-02-18 15:09:07 · 207 阅读 · 0 评论 -
PAT-哈夫曼树(list、collection)
Huffuman树(qdulq)(40 分)Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。 2. 重复步骤1,...原创 2018-02-20 11:31:45 · 426 阅读 · 0 评论 -
PAT1-三部排序
三部排序一般的排序有许多经典算法,如快速排序、希尔排序等。但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情况建立更好的解法。比如,对一个整型数组中的数字进行分类排序:使得负数都靠左端,正数都靠右端,0在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过1次线性扫描就结束战斗!!以下的程序实现了该目标。其中x指向...原创 2018-02-20 11:09:40 · 221 阅读 · 0 评论 -
PAT1-有理数类(代码填空题)
有理数类有理数就是可以表示为两个整数的比值的数字。一般情况下,我们用近似的小数表示。但有些时候,不允许出现误差,必须用两个整数来表示一个有理数。这时,我们可以建立一个“有理数类”,下面的代码初步实现了这个目标。为了简明,它只提供了加法和乘法运算。public class Rational { private long ra;//分子 private long rb;//分母 ...原创 2018-02-20 11:06:49 · 260 阅读 · 0 评论