pku2819.java
来自「这是ACM 方面的资料 是PKU的 北京大学的出来的」· Java 代码 · 共 69 行
JAVA
69 行
import java.util.*;
import java.math.BigDecimal;
import java.lang.String;
class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
BigDecimal bd;
String out;
int l, i;
long n;
while (cin.hasNext())
{
n = cin.nextLong();
if (n == 0)
break;
if (n <= 2)
{
System.out.println("1.00000000000000");
continue;
}
bd = Make(n);
bd = power(bd, n - 2);
out = bd.toString().substring(0, 16);
System.out.println(out);
}
}
static BigDecimal power(BigDecimal bd, long n)
{
BigDecimal ans;
if (n == 0)
{
return BigDecimal.ONE;
}
ans = power(bd, n / 2);
ans = ans.multiply(ans);
if (n % 2 == 1)
{
ans = ans.multiply(bd);
}
if (ans.toString().length() > 50)
{
ans = new BigDecimal(ans.toString().substring(0, 50));
}
return ans;
}
static BigDecimal Make(long N)
{
String s = "";
long v = N - 1;
int i;
for (i = 0; i < 50; i++)
{
v = (v % N) * 10;
s += v / N;
}
s = "0." + s;
return new BigDecimal(s);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?