科大讯飞秋招2020届Java笔试编程题(2019.9.12)--Binrry(冰蕊)

第一题:

  • 加法计算器

  • 时间限制:C/C++语言 1000MS;其他语言 3000MS
    内存限制:C/C++语言 65536KB;其他语言 589824KB
    题目描述:
    从第一行读入两个任意大小的整数,求这两个整数的和

  • 输入
    第一行,两个整数。

  • 输出
    两个整数的和

  • 样例输入
    123456789987654321 987654321123456789

  • 样例输出
    1111111111111111110

核心思路
1.注意输入的数据类型为BigInteger,和也是BigInteger
2.long和int有些案例过不了

详细代码:

import java.math.BigInteger;
import java.util.Scanner;
public class Main {


	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		BigInteger a=in.nextBigInteger();
		BigInteger b=in.nextBigInteger();
		BigInteger sum=a.add(b);
		System.out.println(sum);
	}

}

第二题:

  • 压缩字符串

  • 时间限制:C/C++语言 1000MS;其他语言 3000MS
    内存限制:C/C++语言 65536KB;其他语言 589824KB
    题目描述:
    从第一行读入一个字符串,压缩成数字+字符

  • 输入
    第一行,读入一个字符串。

  • 输出
    压缩后的字符串

  • 样例输入一
    aabb

  • 样例输出一
    2a2b

  • 样例输入二
    abcdabcdc

  • 样例输出二
    abcdabcdc

核心思路
1.把字符串分割成数组,选第一个来做标准t,从1到字符串长度,对比标准t,若一样则count++;若不同则先输出之前的count+t,在让t等于当前字符,count重置为1;
2.注意最后一个字符的判断和输出。

详细代码:

import java.util.Scanner;

public class Main
{

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		String[] str=in.nextLine().split("");
		int len=str.length,count=1;
		String t=str[0];
		for(int i=1;i

总结归纳

  1. Java的BigInteger可以处理任意大小的整数;
  2. 要考虑边界值,最后一个值。

求:有没有遇到上面两道类似的题型可以留言哦,大家一起探讨。

你可能感兴趣的:(Java,编程题,秋招笔试)