当前位置: 首页 > 知识库问答 >
问题:

如何为长度等于该数字位数的数组(int)分配内存?

萧远
2023-03-14
int[] array = new int[s.length()]; //this allocates memory for an array with 4 elements

有没有其他方法可以做到这一点,而不使用字符串,只使用整数?

共有1个答案

祁修诚
2023-03-14

您可以使用math#log10查找位数。

numOfDigits = (int)(Math.log10(n)+1);

现在你做了:

int[] array = new int[numOfDigits];

注意,如果n=1999numofdigits将为4。因此,您将内存分配给4个整数,而不是1999个整数。

 类似资料:
  • 问题内容: 一个int数组占用多少空间?或者一个int数组消耗多少空间(以字节为单位),看起来像这样: 内存分配语言是否特定? 谢谢你们 问题答案: 由于您添加了许多语言标签,因此我想为C#编写代码。在C#中,这取决于操作系统。 对于32位,每个都是4字节,另外4字节也用于引用对象,这使得4 * 4 + 4 = 20字节 对于64位,每个都是4字节,而8字节也用于引用该对象,这使得4 * 4 +

  • 问题内容: 我有一个快速的问题。我在java中有一个整数数组,需要它的长度在整个类中变化。具体来说,在某些情况下,我需要将其增加一。我这样尝试过。 我会在需要时增加整数变量numberOfSBG,但我认为这不起作用。还有其他办法吗? 问题答案: 我建议您使用ArrayList,因为您不必担心长度。创建后,您将无法修改数组大小: 数组是一个包含固定数量的单一类型值的容器对象。创建数组时将确定数组的长

  • 问题内容: 我在以下几行中遇到问题,其中未初始化的数组/没有元素。 有什么可能的解决方案? 问题答案: 由于尚未初始化,因此没有长度,其值为。但是,编译器甚至不允许您按 原样 编译该代码,从而引发以下错误: 变量car可能尚未初始化 。 您需要先对其进行初始化,然后才能使用: 如果需要初始化一个空数组,可以使用以下命令: 如果需要使用特定的大小初始化它,以便填充某些位置,可以使用以下命令: 但是,

  • 怎么让arr1占3个,arr2占5个,剩下的都给arr3

  • 我们将如何测试数组中每个子数组的长度等于子数组元素之和的P倍的所有子数组组合。 一个简短的示例:编辑: 期望的结果: 长度=2,P*元素之和=1。子序列是 编辑约束: 这些问题属于什么样的问题集(例如:NP-hard?)?语言:C#

  • 如何加快以下问题陈述的执行速度?我有一个正确的解决方案,通过每一个测试的小输入。但是,它超过了较大输入的时间限制。我当前的实现是数组大小的二次型。 你的答案应该是基于1的,这意味着数组的第一个位置是1而不是0。 实施