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

计算整数数组中的单个位数?

邹涵畅
2023-03-14

所以,这不是关于如何计算数字中的数字。它是如何计算每一个有多少。说:

arr{101, 103, 105, 107, 109, 110}

多少个0,多少个1等等,我想把它放到树形图中

TreeMap<Integer, Integer> tm = new TreeMap<Integer, Integer>();
tm = [0 -> 5, 1 -> 8, 2 -> 0, 3 -> 1, ..., 9 -> 1]

那我该怎么做呢?

数组将是任意大小的,所以我想我可以循环通过它,对于每个新的int,检查每个数字,如果d=0那么tm。放(d,[increase])等。但不确定如何增加KV映射中的值。

共有2个答案

陈瀚
2023-03-14

要对地图中的数字求和,可以执行以下操作:

Map<Integer, Integer> counts = new TreeMap<>();
// your source of the digits will be different
for (int d : new int[] { 1, 1, 1, 2, 2, 3 }) {
    counts.merge(d, 1, Integer::sum);
}

然后,地图将包含{1=3,2=2,3=1}(三个1,两个2,一个3)。

映射的合并方法的作用是将键(d,数字)设置为1,除非该键已经存在于映射中,在这种情况下,它将新值1与现有值(到目前为止的计数)通过调用整数::总和。

滕令雪
2023-03-14

使用树状图是非常多余的,你应该可以使用一个数组,其中索引对应于数字(例如。索引0是0的数量,索引5是5的数量)。

要从数字中提取数字,您可以使用%10从除以10得到余数,这将是最低的数字,增加该数字的计数器,然后将数字除以10,直到完成所有数字。

下面的代码应该足够好,不会修改源数组中的任何值。

    int array[] = {101, 103, 105, 107, 109, 110};
    int digitCount[] = new int[10];
    
    for (int i = 0; i < array.length; i++) {
        int num = array[i];
        while (num != 0) {
            int digit = num % 10;
            digitCount[digit]++;
            num /= 10;
        }
    }
 类似资料:
  • 问题内容: 我正在尝试计算由文本字段接收的输入填充的数组的总数,均值和中位数。我设法算出了总数和均值,但我只是无法获得中位数。我认为在执行此操作之前需要对数组进行排序,但是我不确定如何执行此操作。这是问题吗,还是我没有找到另一个问题?这是我的代码: 问题答案: Java中的Arrays类具有静态的排序功能,您可以使用调用该功能。

  • 我试图计算由TextField接收的输入填充的数组的总数、平均值和中位数。我已经算出了总数和平均数,但中位数无法计算出来。我认为在我可以这样做之前需要对数组进行排序,但我不确定如何这样做。是这个问题,还是还有一个我没有找到的?下面是我的代码:

  • 本文向大家介绍在C ++中计算整数中的偶数和奇数位,包括了在C ++中计算整数中的偶数和奇数位的使用技巧和注意事项,需要的朋友参考一下 给我们一个整数,任务是计算一个数字中的偶数和奇数。另外,我们将继续检查整数中的偶数是否出现偶数次,并且整数中的奇数位是否出现奇数次。 例如 说明-是的,此外,偶数出现偶数次,即2,奇数位出现奇数次,即3 说明-:否,因为偶数出现的次数是奇数,即3,而奇数出现的次数

  • 问题内容: 我有一个整数数组,我想计算重复出现的元素。首先,我读取数组的大小,并使用从控制台读取的数字对其进行初始化。在数组中,我存储了重复的元素。该数组存储元素连续出现的次数。然后,我尝试搜索重复序列并以特定格式打印它们。但是,它不起作用。 我希望输出看起来像这样: 例如: 如何找到重复的元素及其计数?如何如上所示打印它们? 问题答案: 字典(Java中的HashMap)可以轻松解决此类问题。

  • 我正在尝试在旁边使用值方法。 不幸的是,编译器说不兼容的类型。 如果我将s更改为s,它仍然不喜欢它。

  • 问题内容: Java中还有其他方法可以计算整数的幂吗? 我现在使用,但是它返回一个,这通常是很多工作,并且在您只想使用s 时看起来不太干净(那么幂也会总是产生)。 有没有像Python 一样简单的东西? 问题答案: 整数只有32位。这意味着其最大值为。如您所见,对于非常小的数字,您很快就会得到不能再用整数表示的结果。这就是使用的原因。 如果要任意整数精度,请使用。但这当然效率较低。