蓝桥杯Java试题汇总 下载本文

??? } ??? ??? } } 9.问题描述

输入一个正整数n,输出n!的值。 其中n!=1*2*3*…*n。

算法描述

n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。

将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。

首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。

输入格式

输入包含一个正整数n,n<=1000。

输出格式

输出n!的准确值。

样例输入

10

样例输出

3628800

JAVA

??? import java.util.Arrays; ??? import java.util.Scanner; ??? public class Main {

??? static int max =10000;

??? public static void main(String[] args) { ??? int A[] = new int[max];

??? Scanner input = new Scanner(System.in); ??? int n = input.nextInt(); ??? A[0] = 1; ??? int count = 0;

??? for(int i=1;i<=n;i++){ ??? int ge = 0,sum;

??? for(int j=0;j<=count;j++){ ??? if((i*A[j]+ge)/10!=0){ ??? sum = A[j]*i + ge; ??? A[j] = sum; ??? ge = sum/10; ??? if(j==count){ ??? count++;

??? continue ; ??? } ??? }

??? else{

??? A[j] = i*A[j] + ge; ??? ge = 0; ??? } ??? } ??? } ???

??? for(int i=count;i>=0;i--){ ??? System.out.print(A[i]); ??? } }}

源代码

10. 基础练习 数列排序

时间限制:1.0s 内存限制:512.0MB

问题描述

给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200

输入格式

第一行为一个整数n。

第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。

输出格式

输出一行,按从小到大的顺序输出排序后的数列。

样例输入

5

8 3 6 4 9

样例输出

3 4 6 8 9

语言 JAVA

源代码

??? import java.util.*; ??? public class Main{

??? public static void main(String[] args) {

??? Scanner sc = new Scanner(System.in) ; ??? int n=sc.nextInt();

??? int[] a=new int[n]; ??? while(sc.hasNextInt()){ ???

??? for(int i=0;i

??? System.out.print(a[i]+\??? System.out.println(); ??? ??? } ??? } }

11. 基础练习 十六进制转十进制

时间限制:1.0s 内存限制:512.0MB

问题描述

从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。

注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。

样例输入

FFFF

样例输出

65535

语言 JAVA 源代码

??? import java.util.*; ??? public class Main {

??? public static void main(String[] args) { ??? Scanner sc=new Scanner(System.in); ??? String s=sc.next(); ???

System.out.println(Long.parseLong(s,16)); }}

12. 基础练习 十进制转十六进制

时间限制:1.0s 内存限制:512.0MB

问题描述

十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。 给出一个非负整数,将它表示成十六进制的形式。

输入格式

输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647

输出格式

输出这个整数的16进制表示