首页 > 试题广场 >

计算机内存

[编程题]计算机内存
  • 热度指数:562 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}我们可以看到题目描述的上方有一个空间限制 256\,\mathrm{MB}。在计算机中,一个整数占据 4 字节的内存;
\hspace{23pt}\bullet\,1\,\mathrm{MB}=1024\,\mathrm{KB}
\hspace{23pt}\bullet\,1\,\mathrm{KB}=1024\,\mathrm{B}
\hspace{23pt}\bullet\,1\,\mathrm{B}=1 字节。

\hspace{15pt}那么,给定 n MB 的内存,请问可以存储多少个整数?

输入描述:
\hspace{15pt}在一行中输入一个整数 n1 \leqq n \leqq 256),表示内存大小(单位 MB)。


输出描述:
\hspace{15pt}输出一个整数,表示在 n MB 内存中最多可以存储的整数个数。
示例1

输入

1

输出

262144

说明

\hspace{15pt}1\,\mathrm{MB}=1024\times1024\,\mathrm{B}=2^{20}\,\mathrm{B},每个整数占用 4 字节,因此可存储 2^{20}/4=262144 个整数。
示例2

输入

256

输出

67108864

说明

\hspace{15pt}256\,\mathrm{MB}=256\times2^{20}\,\mathrm{B},每个整数占用 4 字节,因此可存储 256\times2^{20}/4=256\times2^{18}=67108864 个整数。
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int a = in.nextInt();
           
            System.out.println(a * 1024 * 1024 / 4);
        }
    }
}
发表于 2025-06-06 11:49:28 回复(0)