day38 1477のスペルが正しい(文字列処理、入力、シミュレーション)

1477.正しいスペル

負でない整数Nが与えられた場合、タスクはNのすべての桁の合計を計算し、合計の各桁を英語で出力することです。

入力形式は
1行で、整数Nが含まれています。

出力形式は
1行で、合計の各数値は単語間のスペースで区切られた英語で出力されます。

データ範囲
0≤N≤101000≤N≤10^ {100}0N1 0。1つの0 0
入力サンプル:

12345

サンプル出力:

one

アイデア:

直接シミュレートするだけです。

  1. あなたのそれぞれの数の合計を計算します。
  2. 前から後ろに移動する必要があるため、合計を文字列に変換し、下付き文字を使用して各人の番号を見つける方が便利です。
  3. zero ~ nine10英語の単語を検索し、直接出力が可能、その後、テーブルを打ちます。

注意点:

0≤N≤101000≤N≤10^ {100} 0N1 01 0 0、入力がそうすることをNはるかに超えてもよいintし、long我々の最初の反応が使用されるように、スコープStringの数を保持します。これは、アルゴリズムの問​​題を実行するときに、データの入力範囲が問題を解決するための重要な情報である場合もあり、コードの実行を決定する場合もあることも示しています。

Javaコード

import java.util.Scanner;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        //输入的数字可能很大(10^100),远远超出int和long的范围,所以我们直接用String存更好
        String strNum = sc.next();
        int sum = 0;
        //打表,方便后期查询
        String[] strs = {
    
    "zero","one","two","three","four","five","six","seven","eight","nine"};

        //得到数字strNum的各位上数字的总和
        for(int i = 0;i < strNum.length();i++){
    
    
            sum += strNum.charAt(i) - '0';
        }
       

        //将总和转为字符串,方便从头至尾遍历各个位上的数字
        String strSum = String.valueOf(sum);

        //可以转为英文输出了
        for(int i = 0;i < strSum.length();i++){
    
    
            System.out.print(strs[strSum.charAt(i) - '0'] + " ");
        }
    }
}

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/YouMing_Li/article/details/114025709