⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pku2819.java

📁 这是ACM 方面的资料 是PKU的 北京大学的出来的
💻 JAVA
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -