zoukankan      html  css  js  c++  java
  • 我的Java历程_写出这个数

    lzJava基础进行中,今天偶然间看到的一个题目:

    读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
    如下代码:

    import java.util.*;
    public class Main2{
    public static void main(String[] args){
    String[] date = {"Ling", "Yi", "Er", "San", "Si", "Wu", "Liu", "Qi", "Ba", "Jiu"};
    int digit = 1;
    int t = 0;
    Scanner sc = new Scanner(System.in);
    int sum = 0;
    String arr = sc.nextLine();
    String[] a = arr.split("");
    int[] num = new int[a.length];
    for(int i = 0;i<a.length;i++){
    num[i] = Integer.parseInt(a[i]);
    }
    for(int j = 0;j<num.length;j++){
    sum = sum + num[j];
    }
    while(sum/(Math.pow(10,digit))>1)
    digit++;
    for(int i = digit - 1;i>=0;i--){
    t = (int)(sum/Math.pow(10,i));
    System.out.print(date[t]+" ");
    sum = (int)(sum - t*Math.pow(10,i));
    }
    }
    }

    看到本题的第一反应,Scanner类接受数据,这个是一贯的习惯,然后开始上手了,接收一个字符串肯定是用nextLine,这没想起他的。然后接收字符串,转换成int类型,问题来了,怎么样打印输出呢?我的第一选择是用switch选择,but结果貌似就只能是你在已知能够输出几位数的情况下,毕竟经验不丰富,想的不是这么多,只想能过实现个四位数就OK了,总归是不完美的,一番苦想。。。。

    最后看了百度,找到了C语言的代码。幡然醒悟,原来还可以这样,定义想要输出的0~9的中文拼音为数组,修修改改之后的代码:

    while(sum/(Math.pow(10,digit))>1)
    digit++;
    for(int i = digit - 1;i>=0;i--){
    t = (int)(sum/Math.pow(10,i));
    System.out.print(date[t]+" ");
    sum = (int)(sum - t*Math.pow(10,i));
    }

    然后出了一个缺失精度的问题,Math的pow返回的是double型的,汗~,粗心,强制转换类型  Ok  大功告成。

    最后总结:

    在本次题目的历程中,收获肯定是有的,对于Java的一些类和方法的用法印象加深了,相信以后的运用会更加得心应手,同时在做题的同时自己思考问题,解决问题的能力有了点点的提升,当然一次次的努力,总是会积少成多的么,其次意识到了自己性格的不足,粗心大意,对细节的把握上和对逻辑上的研究还有严重不足,再接再厉吧!康忙!

    第一次试着写点什么,只为学习之余记录下学习过程中的心路历程。不喜勿喷,谢谢!

  • 相关阅读:
    用python实现简单的调度场算法
    数据结构顺序表python
    数据结构顺序表C
    python绘制5角形,6角星方法
    TsinghuaX+00740043_2X C++程序设计进阶 C7-3
    Struts2开发环境搭建,及一个简单登录功能实例
    Javascript进度条
    java.util.Date与java.sql.Date
    Error while performing database login with the sqljdbc driver:Unable to create connection. Check your URL.
    java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
  • 原文地址:https://www.cnblogs.com/Eternally-dream/p/6569050.html
Copyright © 2011-2022 走看看