内容发布更新时间 : 2024/11/16 4:46:43星期一 下面是文章的全部内容请认真阅读。
??? } ??? ??? } } 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进制表示