PTA基础编程题Java版本
小爷汤少
这个作者很懒,什么都没留下…
展开
-
7-38 数列求和-加强版 (20 分)
思路:一开始是想用两个循环暴力求解,但是这样会导致加和结果超过长整数范围,于是参考其他代码,从个位往前处理,用数组将每一个位置上的数字存下来,最后再一起输出,就像是列竖式做加法,重点是通过取余得到要存的数字,通过地板除得到下一次下一个位置正确得sum值(计算是否有进位的情况),可惜由于平台原因吧,最大a和n的情况仍然没过,原因是超时了。import java.util.Scanner;import java.lang.Math;public class Main { public static原创 2021-09-19 23:02:22 · 140 阅读 · 0 评论 -
7-37 整数分解为若干项之和 (20 分)
法1:每次递归累加直至和为输入的数据import java.util.Scanner;public class Main { //计数 static int count; static int index = 0;//数组的索引 static int [] res = new int [30];//储存分解的子项,最多三十项 static int partNum;//部分和 static int n; //输入的数据 public static v原创 2021-09-07 22:46:05 · 363 阅读 · 0 评论 -
7-36 复数四则运算 (15 分)
本题比较繁琐,最主要的是输出情况的判断,由于有很多相同的输出部分,因此考虑写成函数直接调用,另外,由于其对输出结果的小数位数有要求,我们还需要事先对其进行一位小数的保留。import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double a1 = sc.nextDouble(原创 2021-09-07 17:02:04 · 242 阅读 · 0 评论 -
7-35 有理数均值 (20 分)
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.nextLine()); String [] input1 = sc.nextLine().split(" "); String []原创 2021-09-06 22:26:07 · 57 阅读 · 0 评论 -
7-34 通讯录的录入与显示 (10 分)
import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); //此处必须是nextLine,否则会出错,因为nextInt读取时忽略掉最后的空格和换行, //但是紧接着的nextLine会读取忽略的空格与换行,这样导致str[]中存储的第一个值为空字符串原创 2021-09-03 22:58:30 · 378 阅读 · 0 评论 -
2021-09-02
import java.util.Scanner;import java.lang.Math;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String [] input1 = sc.nextLine().split(" "); String [] input2 = input1[0].split原创 2021-09-02 22:51:57 · 41 阅读 · 0 评论 -
7-32 说反话-加强版 (20 分)
import java.util.Scanner;import java.lang.Math;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String [] s = sc.nextLine().trim().split(" "); for (int i = s.length - 1; i >原创 2021-08-31 18:54:21 · 159 阅读 · 0 评论 -
7-31 字符串循环左移 (20 分)
import java.util.Scanner;import java.lang.Math;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int n = sc.nextInt(); char [] sArray = s.toCh原创 2021-08-31 17:02:12 · 53 阅读 · 0 评论 -
7-30 字符串的冒泡排序 (20 分)
import java.util.Scanner;import java.lang.Math;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String [] input = sc.nextLine().split(" "); int n = Integer.parseInt(input[0]);原创 2021-08-31 16:27:27 · 138 阅读 · 0 评论 -
7-29 删除字符串中的子串 (20 分)
import java.util.Scanner;import java.lang.Math;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String s1 = sc.nextLine(); String s2 = sc.nextLine(); while (s1.contain原创 2021-08-31 16:26:41 · 73 阅读 · 0 评论 -
7-28 猴子选大王 (20 分)
import java.util.Scanner;import java.lang.Math;import java.util.HashMap;import java.util.Map;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int [] in原创 2021-08-31 12:30:45 · 164 阅读 · 0 评论 -
7-27 冒泡法排序 (20 分)
import java.util.Scanner;import java.lang.Math;import java.util.HashMap;import java.util.Map;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String [] input1 = sc.nextLine().split(原创 2021-08-29 22:57:01 · 81 阅读 · 0 评论 -
7-26 单词长度 (15 分)
假如单词长度为0的话,不要输出0import java.util.Scanner;import java.lang.Math;import java.util.HashMap;import java.util.Map;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String input = sc.ne.原创 2021-08-29 22:18:29 · 79 阅读 · 0 评论 -
7-25 念数字 (15 分)
import java.util.Scanner;import java.lang.Math;import java.util.HashMap;import java.util.Map;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); S原创 2021-08-29 12:26:35 · 80 阅读 · 0 评论 -
7-24 约分最简分式 (15 分)
import java.util.Scanner;import java.lang.Math;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String [] input = sc.nextLine().split("/"); int a = Integer.parseInt(input[0]);原创 2021-08-29 11:49:46 · 149 阅读 · 0 评论 -
7-23 币值转换(20 分)
大致思路输入的数字存储为字符串,每次取一位进行判断,数字转中文的话可以通过所取的数字字符和’0’作差再加上字符’a’,可以得到对应的a-j的ascall码,将其储存九位数字跟着的单位从个位到最高位依次可以存储在一个数组里面,将数字转换成对应的中文数字后,按照循环的i作为下标去取出来存入内存关键点从哪里开始循环。从个位开始循环的话,对于0的处理比较麻烦,要考虑末尾0的个数,从最高位开始的话,末尾0的情况可以和连续0的情况合为一种情况,因为我们选择从高位开始循环;此外,为了便于处理万位的情况,我们原创 2021-08-28 22:44:59 · 136 阅读 · 0 评论 -
7-22 龟兔赛跑 (20 分)
import java.util.Scanner;import java.lang.Math;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); int disG = 0; int disT = 0; int i = 0;原创 2021-08-26 09:39:12 · 57 阅读 · 0 评论 -
7-21 求特殊方程的正整数解 (15 分)
import java.util.Scanner;import java.lang.Math;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); boolean flag = false; for (int x = 1; x < Math原创 2021-08-26 09:08:23 · 78 阅读 · 0 评论 -
7-20 打印九九口诀表 (15 分)
import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) {原创 2021-08-25 18:14:14 · 75 阅读 · 0 评论 -
7-19 支票面额 (15 分)
import java.util.Scanner;import java.lang.Math;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); boolean flag = false; for (int y = 0; y < 99;原创 2021-08-25 18:03:56 · 39 阅读 · 0 评论 -
7-18 二分法求多项式单根 (20 分)
import java.util.Scanner;import java.lang.Math;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String [] input1 = sc.nextLine().split(" "); double a3 = Double.parseDouble(inp原创 2021-08-25 14:42:15 · 114 阅读 · 0 评论 -
7-17 爬动的蠕虫 (15 分)
import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String [] input = sc.nextLine().split(" "); int n = Integer.parseInt(input[0]); int u = Intege原创 2021-08-25 10:25:42 · 67 阅读 · 0 评论 -
7-16 求符合给定条件的整数集 (15 分)
import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int count = 0; for (int i = A; i < A + 4; i++) { for (int原创 2021-08-25 09:31:51 · 49 阅读 · 0 评论 -
7-15 计算圆周率 (15 分)
法一import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); double a = sc.nextDouble(); int n = 1; double result = 1; double condition; .原创 2021-08-24 11:47:32 · 127 阅读 · 0 评论 -
7-14 求整数段和 (15 分)
import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String [] input = sc.nextLine().split(" "); int a1 = Integer.parseInt(input[0]); int a2 = Inte原创 2021-08-24 09:52:01 · 102 阅读 · 0 评论 -
7-13 日K蜡烛图 (15 分)
import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String [] input = sc.nextLine().split(" "); double open = Double.parseDouble(input[0]); double原创 2021-08-24 09:37:59 · 52 阅读 · 0 评论 -
7-12 两个数的简单计算器 (10 分)
import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String [] input = sc.nextLine().split(" "); int a1 = Integer.parseInt(input[0]); int a2 = Inte原创 2021-08-24 09:19:14 · 188 阅读 · 0 评论 -
7-11 分段计算居民水费 (10 分)
import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); double s = sc.nextDouble(); double e = 0; if (s < 15) { e = 4 * s / 3;原创 2021-08-24 09:01:41 · 320 阅读 · 0 评论 -
7-10 计算工资 (15 分)
import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int years = Integer.parseInt(s.split(" ")[0]); int workTime = Intege原创 2021-08-23 21:26:46 · 109 阅读 · 0 评论 -
7-9 用天平找小球 (10 分)
import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int a = Integer.parseInt(s.split(" ")[0]); int b = Integer.parseInt(原创 2021-08-23 10:01:10 · 35 阅读 · 0 评论 -
7-8 超速判断 (10 分)
import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); int s = sc.nextInt(); if (s <= 60) { System.out.println("Speed: " + s + " - " + "OK");原创 2021-08-23 09:52:08 · 61 阅读 · 0 评论 -
7-3 逆序的三位数 (10 分)
import java.util.Scanner;public class Main{ public static void main(String [] args){ Scanner sc = new Scanner(System.in); int startNumber = sc.nextInt(); int a = startNumber / 100; int b = (startNumber / 10) % 10;原创 2021-08-23 09:43:46 · 77 阅读 · 0 评论 -
7-6 混合类型数据格式化输入 (5 分)
java中nextLine读取一整行的输入为一个字符串;DecimalFormat 是一个用于格式化字符串的类,与SimpleDateFormat使用相似,格式化后得到的结果类型为字符串#代表这一个位置没有数字就不填充,0表示这一个位置没有数字就用0来填充import java.util.Scanner;import java.text.DecimalFormat;public class Main { public static void main (String [] args) .原创 2021-08-23 09:14:05 · 351 阅读 · 0 评论 -
7-5 表格输出 (5 分)
通过pringtf来控制左右对齐和输出的数据的长度public class Main { public static void main(String [] args) { System.out.println("------------------------------------"); System.out.println("Province Area(km2) Pop.(10K)"); System.out.println("-原创 2021-08-22 21:32:45 · 65 阅读 · 0 评论 -
7-4 BCD解密 (10 分)
法1:直接输出为16进制数public class Main{ public static void main (String [] args){ Scanner sc = new Scanner(System.in); int number = sc.nextInt(); String c = Integer.toHexString(number); System.out.print(c); }}法2:先将输入的数字转化为2原创 2021-08-22 19:41:08 · 102 阅读 · 0 评论 -
7-2 然后是几点 (15 分)
思路:先通过除法和取余获得开始时间的小时和分钟,再获取流逝时间对应的小时和分钟小时可以直接相加减,分钟需要根据情况决定是否进位:当给定的流逝时间小于0时,若流逝对应的分钟的绝对值大于开始时间的分钟值,需要向开始时间的小时值借1当60之后再进行减法运算;若流逝对应的分钟的绝对值小于开始时间的分钟值,直接进行减法;当给定的流逝时间大于0时,若流逝时间对应的分钟值与开始时间对应的分钟值相加之和大于等于60,则需要向开始时间的小时位进1后进行相加运算(此时相加后需要减去60);反之,直接进行加法运算。原创 2021-08-22 18:07:04 · 137 阅读 · 0 评论 -
7-1 厘米换算英尺英寸 (15 分)
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。输入格式:输入在一行中给出1个正整数,单位是厘米。输出格式:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。输入样例:170结尾无空行输出样例:5 6import java.util.Scanner;import java.lang.Math; publi原创 2021-08-22 16:34:22 · 76 阅读 · 0 评论 -
7-7 12-24小时制 (15 分)
通过对小时部分的值来进行后缀(PM或者AM)的判断,三种情况import java.util.Scanner;public class Main { public static void main (String [] args) { Scanner sc = new Scanner(System.in); String start = sc.nextLine(); String [] starts = start.split(":"); .原创 2021-08-23 09:41:16 · 67 阅读 · 0 评论