コーディングテスト練習記録

5665 ワード

2021.12.21初日
白駿2577号(数字の個数)
質問する
3つの自然数A,B,Cの時A× B × Cの計算結果に基づいて、1つのプログラムを書き出して、1つの数字が0から9まで何回書いたかを求めます.
例えば、A=150、B=266、C=427の場合、A× B × C = 150 × 266 × 427=17037300、計算結果によると、17037300では0が3回、1が1回、3が2回、7が2回と書かれている.
私の答え
  • a,b,c入力,sum=a b c
  • とString
  • に変換
  • for文、charat(0)-「0」評価
  • の値はインデックスとして使用され、プラス番号は
  • です.
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            int a = scanner.nextInt();
            int b = scanner.nextInt();
            int c = scanner.nextInt();
            int sum = a * b * c;
    
            int[] numArr = new int[10];
            String sumStr = String.valueOf(sum);
    
            for (int i = 0; i < sumStr.length(); i++) {
                numArr[(int)sumStr.charAt(i) - '0']++;
            }
    
            for(int x:numArr) {
                System.out.println(x);
            }
        }
    }
    考える
  • Stringを変換する必要はありません.Whlie文ごとに10個あり、残りは
  • を使用できます.
  • 文字相関
  • charから数値に変換
  • 文字「0」から
  • を減算
  • Character.getNumericValue(ch)
  • を使用
    数字からcharに変換
  • Integer.toString(i).charAt(0)
  • Character.forDigit(数値、基数)
  • を使用
    文字列をcharに変換
  • toCharArray()