java大数进制转换-N的阶乘
1.题目描述
将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。
输入描述:
多组数据,每行为一个长度不超过30位的十进制非负整数。 (注意是10进制数字的个数可能有30个,而非30bits的整数)
输出描述:
每行输出对应的二进制数。
示例1
输入
0 1 3 8
输出
0 1 11 1000
import java.math.*;
import java.util.Scanner;
//实现大数的进制转换
public class Main {
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
while(cin.hasNext())//相当于EOF
{
String str=cin.nextLine();
BigInteger a=new BigInteger(str,10);//将string转换为10进制
System.out.println(a.toString(2));//将a转换为2进制
}
cin.close();
}
}
2.题目描述
输入一个正整数N,输出N的阶乘。
输入描述:
正整数N(0<=N<=1000)
输出描述:
输入可能包括多组数据,对于每一组输入数据,输出N的阶乘
示例1
输入
4 5 15
输出
24 120 1307674368000
import java.math.*;
import java.util.Scanner;
//计算大数阶乘
public class Main {
public static void main(String[] args) {
//syso alt+/
Scanner cin=new Scanner(System.in);
while(cin.hasNext())
{
int x=cin.nextInt();
BigInteger ans=new BigInteger("1");//将字符串转换为大数
for(int i=1;i<=x;i++)
{
ans=ans.multiply(new BigInteger(String.valueOf(i)));//将i转换为string
}
System.out.println(ans);
}
}
}