为什么JAVA给的空间这么小!!!!这都过不了

P1045 [NOIP2003 普及组] 麦森数

buxiangzaoqi00 @ 2021-10-27 19:43:21

import java.math.BigInteger;
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        BigInteger sc = new BigInteger("0");
        sc = sc.setBit(n);
        BigInteger y = BigInteger.valueOf(1);
        sc = sc.subtract(y);
        System.out.println(sc.toString().length());
        int m = sc.toString().length();
        if(m >= 500){
            int bb = 0;
            for (int i = m-500; i < m; i++) {
                if(bb % 50 == 0 && bb!=0 ){
                    System.out.println();
                }
                System.out.print(sc.toString().charAt(i));
                bb++;
            }
        }
        else {
            int ac = 0;
            for (int i = 0; i < 500; i++) {
                if(i < 500 - m){
                    if( i % 50 == 0 && i != 0){
                        System.out.println();
                    }
                    System.out.print(0);
                }
                else {
                    if( i % 50 == 0){
                        System.out.println();
                    }
                    System.out.print(sc.toString().charAt(ac));
                    ac++;

                }
            }
        }
    }
}

by int64 @ 2021-10-27 19:45:03

如果要坚持搞 OI 的话,建议转 C++


by jiangtaizhe001 @ 2021-10-27 19:58:06

其实洛谷只是保证 C++/C/Pascal 能通过。
让然可以选择 POJ 等 OJ,这些 OJ 给了 JAVA 更大的时空限制,当然 IOI 也有
当然搞 OI 建议学 C++。


by ud2_ @ 2021-10-27 20:21:46

不是 Java 或者洛谷的问题,是你算法错了。这段代码即使翻译成 C++ 也过不了。


by _l_l_l_l_l_ @ 2021-10-27 20:22:03

如果要坚持搞 OI 的话,建议转 C++(Java CCF不允许)


|