gpt4 book ai didi

java - 用户输入的整数频率

转载 作者:行者123 更新时间:2023-12-01 13:51:56 26 4
gpt4 key购买 nike

这可能很简单,但我无法弄清楚。我正在尝试打印出用户输入的频率。例如,用户输入数字 1 多少次?这是我的一些代码。

import java.util.Scanner;
public class Ex2partB {

public static void main (String ags []) {
Scanner input = new Scanner ( System.in );

int number1;
int number2;
int number3;
int number4;
int number5;
int product;

System.out.print( "Enter first integer: " );
number1 = input.nextInt();

System.out.print( "Enter second integer: " );
number2 = input.nextInt();

System.out.print( "Enter third integer: " );
number3 = input.nextInt();

System.out.print( "Enter fourth integer: " );
number4 = input.nextInt();

System.out.print( "Enter fifth integer: " );
number5 = input.nextInt();

product = number1 + number2 + number3 + number4 + number5;

System.out.printf (" Product is %d\n ", product );

}
}

最佳答案

以下是一种非常可靠的方法。它使用 HashMap 存储输入及其频率,并将结果传递给 TreeMap 对键进行排序并打印结果。

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

public class App {
public App() {
Map<Integer, Integer> map = buildMap();
printFrequency(map);
}

public Map<Integer, Integer> buildMap() {
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Scanner input = new Scanner(System.in);
int n, key;

System.out.print("How many numbers will you enter?: ");
n = input.nextInt();

for (int i = 0; i < n; i++) {
System.out.printf("Enter integer #%d: ", i + 1);
key = input.nextInt();
map.put(key, map.containsKey(key) ? map.get(key) + 1 : 1);
}

input.close();

return map;
}

public void printFrequency(Map<Integer, Integer> map) {
Map<Integer, Integer> treeMap = new TreeMap<Integer, Integer>(map);

System.out.println("\nValue\tFrequency");

for (Integer key : treeMap.keySet()) {
System.out.printf("%5d\t%9d\n", key, treeMap.get(key));
}
}

public static void main(String[] args) {
new App();
}
}

运行示例:

How many numbers will you enter?: 10
Enter integer #1: 1
Enter integer #2: 2
Enter integer #3: 3
Enter integer #4: 2
Enter integer #5: 3
Enter integer #6: 4
Enter integer #7: 1
Enter integer #8: 2
Enter integer #9: 2
Enter integer #10: 5

Value Frequency
1 2
2 4
3 2
4 1
5 1

关于java - 用户输入的整数频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19897244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com