zoukankan      html  css  js  c++  java
  • MT2018笔试题之计算数字位数

    一、计算数字位数

    1、题目

    给定一个数字T,计算从1到T的所有正整数的位数和。比如T=13,则12345678910111213有17位数字。

    输入描述

    3

    13 4 5

    输出

    17 4 5

    2、思路

    详见代码部分

    3、代码

    import java.util.Scanner;
    
    /**
     * Created by Administrator on 2018/4/20.
     */
    
    public class Main1 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            while (sc.hasNext()) {
                //输入数据组数
                int T = sc.nextInt();
                //输入数据
                int[] arr = new int[T];
                for (int i = 0; i < arr.length; i++) {
                    arr[i] = sc.nextInt();
                }
                //计算
                int result ;
                for (int i = 0; i < arr.length; i++) {
                    result = bitNum(arr[i]);
                    System.out.println(result);
                }
    
            }
            sc.close();
        }
    
        public static int bitNum(int n) {
            //计算n的位数
            int num = n;
            int count = 0;
            while (n > 0) {
                n = n / 10;
                count++;
            }
    
            //如果为1位数
            if (count == 1) {
                return num;
            }
    
            //如果不是1位数,计算总的位数
    
            int num1 = 0;  //总位数的一部分
            for (int i = 0; i < count-1; i++) {
                num1 += 9 * Math.pow(10, i) * (i + 1);
            }
    
            int temp1 = (int) (num % Math.pow(10,count-1));//去掉最高位剩下的数
            int temp2 = (int) (num / Math.pow(10,count-1)); //数的最高位
            int num2 = (int) ((temp1 + 1) * count + (temp2 - 1) * Math.pow(10,count-1) * count); //总位数的另一部分
            return num1 + num2;
        }
    }
    

    -------------------------------------------

    答案仅供参考

  • 相关阅读:
    如何在Mac OS X上安装 Ruby运行环境
    CocoaPods安装和使用教程
    【Objective-C】07-自定义构造方法和description方法
    window cmd 命令大全 (order)
    vue methods 方法中 方法 调用 另一个方法。
    js ---- 函数防抖
    three.js 运行3D模型
    点击保存网页 (及页面的数据)
    js -- canvas img 封装
    js -- 分页功能
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/8900917.html
Copyright © 2011-2022 走看看