记录一下自闭的一天,从搭建Java环境到安装eclipce,
简直到自闭。然后创建文件开始写代码也是捣鼓了半天。
最后终于是好了。
关于大数,c++顶多开个long long ,浮点数duble基本不行了
题目Title:N!
算N的阶乘,这里N很大。
import java.math.BigInteger;//各种大小写一定要区分,当然编译器也会告诉你
import java.util.Scanner;
public class Main {//第一次写的不是Main,语法错误
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while (cin.hasNext())
{
int n = cin.nextInt();
BigInteger sum = new BigInteger("1") ;
int i=1;
while (i<=n)
{
sum = sum.multiply(BigInteger.valueOf(i));
/*String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串
,为什么我也不知道,初学,就按这么写吧*/
i++;
}
System.out.println(sum);
}
}
}
题目Title:Game of Connections
说白了就是卡特兰数打个表,到后面数会非常大,c++到三十多个九不行了。
a[1] = 1;
for(int i=2;i<34;i++)
a[i] = a[i] * (4*i-2) / (i+1);//无符号long long
java:
import java.math.BigInteger;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
BigInteger[] a = new BigInteger[105];
a[1] = new BigInteger("1");//初值new一下
for(int i=2;i<=102;i++)
{
a[i] = a[i-1].multiply(new BigInteger (String .format("%d",4*i-2)))
.divide(new BigInteger( String. format("%d",i+1)));
}
while(cin.hasNext())
{
int n = cin.nextInt();
if(n==-1)
break;
System.out.println(a[n]);
}
}
}
题目Title:Exponentiation
就是求a的b次方
///
其中a.pow(b) 类似于c++的pow(a,b)函数。
1、stripTrailingZeros() ,返回类型为BigDecimal的小于此数的但除去尾部的0的数值。
2、toPlainString(),返回BigDecimal类型的String类型字符串。
3、startsWith(),确定此实例的开头是否与指定的字符串匹配。
4、substring(),返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。
by:https://www.cnblogs.com/shanyr/p/4693115.html
/
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){
BigDecimal a = cin.nextBigDecimal();
int b = cin.nextInt();
String ans = a.pow(b).stripTrailingZeros().toPlainString();
if(ans.startsWith("0"))
ans = ans.substring(1);
System.out.println(ans);
}
cin.close();
}
}