0以上の整数を標準入力から次々に読み込み,下2桁の値ごとに出現頻度を数えるプログラムを作成しなさい。標準入力から読み込む整数値がいくつあるかはあらかじめ定まっておらず,-1 が来たら,それは終了マークと考えて,出現頻度を出力しプログラムを終了すること。出現頻度を出力するときには,1 回以上出現したもののみ出力すること。
--追記--
すみません。たくさんの回答や修正依頼をいただいたのですが言い忘れていた前提として私はこの問題でどこから書き始めたらいいかわからず、悩んだ結果、このような意味のないプログラムになってしまいました。
int n=100000000という値は最初は小さい値でやっていたところ、5020や89999999を受け付けないと言われたため、数字を大きくした結果でした。そして、v=data[i]*10は下二桁を表現していました。これらの改善方法をご教授頂けたらと思います。
入力例
5020
89999999
303
120
4
-1
入力例に対して期待される出力結果
3 1
4 1
20 2
99 1
java
1package prog; 2import java.util.Scanner; 3public class kadai0901 { 4 public static void main(String[] args) { 5 Scanner sc = new Scanner(System.in); 6 int n=100000000; 7 int[]cnt=new int[n]; 8 int v; 9 int []data=new int[n]; 10 for(int i = 0; i < n; i++) { 11 i=sc.nextInt(); 12 v=data[i]*10; 13 cnt[v]++; 14 System.out.println(v); 15 } 16 } 17}
ここまで作ってみたのですが、下2桁の数字の出現頻度の表し方がわかりません。
v=data[i]*10の場所を変更すればいいとは思うのですが、数値のあらわし方が分からなくて困っています
回答3件
あなたの回答
tips
プレビュー