蓝桥杯——算法提高 大数加法&大数乘法&冒泡排序

 算法提高 大数加法  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  输入两个正整数a,b,输出a+b的值。
输入格式
  两行,第一行a,第二行b。a和b的长度均小于1000位。
输出格式
  一行,a+b的值。
样例输入
4
2
样例输出
6


import java.math.BigInteger;
import java.util.Scanner;

/**
 * 
 * @author hhit.soft141.xxf
 * @date 2017-3-6
 * 注释:列这几题主要是要说明用java写算法要多用java封装好的
 * 方法,可以简化很多,这也是java的优势
 */
public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		BigInteger a = new BigInteger(scanner.next());
		BigInteger b = new BigInteger(scanner.next());
		BigInteger add = a.add(b);

		System.out.println(add);
	}

}



算法提高 P1001  
时间限制:1.0s   内存限制:256.0MB
    
  
  当两个比较大的整数相乘时,可能会出现数据溢出的情形。为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法。具体来说,首先以字符串的形式输入两个整数,每个整数的长度不会超过8位,然后把它们相乘的结果存储在另一个字符串当中(长度不会超过16位),最后把这个字符串打印出来。例如,假设用户输入为:62773417和12345678,则输出结果为:774980393241726.

输入:
  62773417 12345678

输出:
  774980393241726

import java.math.BigInteger;
import java.util.Scanner;

/**
 * 
 * @author hhit.soft141.xxf
 * @date 2017-3-6
 * 
 */
public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		BigInteger a = new BigInteger(scanner.next());
		BigInteger b = new BigInteger(scanner.next());
		BigInteger add = a.multiply(b);

		System.out.println(add);
	}

}



算法提高 冒泡法排序  
时间限制:1.0s   内存限制:512.0MB
    
  输入10个数,用“冒泡法”对10个数排序(由小到大)这10个数字在100以内。
样例输入
1 3 6 8 2 7 9 0 4 5
样例输出
0 1 2 3 4 5 6 7 8 9



import java.util.Arrays;
import java.util.Scanner;

/**
 * 
 * @author hhit.soft141.xxf
 * @date 2017-2-14
 * 
 */
public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int[] a = new int[10];
		for (int i = 0; i < a.length; i++) {
			a[i] = scanner.nextInt();
		}

		Arrays.sort(a);

		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}
	}

}


猜你喜欢

转载自blog.csdn.net/qq_37518622/article/details/61651075