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);
		}
	}
}


posted @ 2018-04-12 00:03  xzhws  阅读(61)  评论(0编辑  收藏  举报