日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 统计数字个数_统计数字问题(Java)

發布時間:2023/12/3 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 统计数字个数_统计数字问题(Java) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

一本書的頁碼從自然數1 開始順序編碼直到自然數n。書的頁碼按照通常的習慣編排,每個頁碼都不含多余的前導數字0。例如,第6 頁用數字6 表示,而不是06 或006 等。數字計數問題要求對給定書的總頁碼n,計算出書的全部頁碼中分別用到多少次數字0,1, 2,…,9。給定表示書的總頁碼的10 進制整數n (1≤n≤10^9) 。計算書的全部頁碼中分別用到多少次數字0,1,2,…,9。

Input

輸入數據只有1 行,給出表示書的總頁碼的整數n。

Output

輸出數據共有10行,在第k行輸出頁碼中用到數字k-1 的次數,k=1,2,…,10。

Sample Input

11

Sample Output

1

4

1

1

1

1

1

1

1

1

import java.util.Scanner;

public class Main {

public static int num[] = new int[10];

public static void main(String[] args) {

Scanner cin = new Scanner(System.in);

int n = 0;

n = cin.nextInt();

Count(n); // 統計00..00 - n之間的0-9數字的個數

num[0] -= del_zero(get_length(n)); // 減去比如0001,0066這種多余的0的個數

for (int i = 0; i < 10; i++)

System.out.println(num[i]);

}

// 獲取數字的長度

public static int get_length(int num){

return (int)Math.log10(num) + 1;

}

// 獲取數字的第一位數

public static int get_head(int num){

return num / (int) Math.pow(10, get_length(num) - 1);

}

// 獲取數字的余數

public static int get_remainder(int num){

return num % (int) Math.pow(10, get_length(num) - 1);

}

/* 統計00..00~n之間多余的0

比如000 - 999可以看成

0 00 - 0 99, 100 - 100

0 1 - 0 9, 10 - 99

*/

public static int del_zero(int length){

if (length == 1)

return 1;

return del_zero(length - 1) + (int) Math.pow(10, length - 1);

}

// 統計00..00 - n之間0-9數字的個數

public static void Count(int n){

/* f(n) = n * 10^(n-1),

f(n)是n個0到n個9之間0-9的個數

比如f(2) = 20

表示00 - 99之間0有20個, 1有20個......9有20個

*/

/* 比如34789, 分成3組0000 - 9999

0 0000 - 0 9999

1 0000 - 1 9999

2 0000 - 2 9999

*/

for (int i = 0; i < 10; i++){

num[i] = num[i] + get_head(n) * (get_length(n) - 1) * (int) Math.pow(10, (get_length(n) - 2));

}

/* 比如34789, 首位0, 1, 2分別加上10000個

00000 - 09999

10000 - 19999

20000 - 29999

*/

for (int i = 0; i < get_head(n); i++){

num[i] = num[i] + (int) Math.pow(10, get_length(n) - 1);

}

// 比如34789, 首位3, num[3]加上余數4789和特殊情況30000

num[get_head(n)] += get_remainder(n) + 1;

// 如果余數為0, 比如 40000, num[0] 得加上長度-1,并且余數為0時結束遞歸

if (get_remainder(n) == 0) {

num[0] += get_length(n) - 1;

return;

}

/* 比如4000589這種情況, 直接余數遞歸回漏掉中間的0

所以num[0]得加上(7 - 1 - 3) * (589 + 1)

*/

if (get_length(n) - 1 != get_length(get_remainder(n))) {

num[0] += (get_length(n) - 1 - get_length(get_remainder(n))) * (get_remainder(n) + 1);

}

// 用余數接著遞歸

Count(get_remainder(n));

}

}

總結

以上是生活随笔為你收集整理的java 统计数字个数_统计数字问题(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www.在线观看麻豆 | 国产大尺度视频 | 黄色三级视屏 | 青青久在线 | 1000部啪啪未满十八勿入超污 | 你懂的国产在线 | 久久精品人妻一区二区三区 | 日韩欧美一二三 | 久久国产精品波多野结衣av | 成人动漫av | 国产三级日本三级在线播放 | 视频在线观看你懂的 | 肉肉av福利一精品导航 | 国产又爽又黄免费视频 | av天天看 | 在线91观看 | 永久免费观看av | 日韩成人av网 | 欧美a网站 | 动漫女被黄漫免费视频 | 亚洲九九色| 亚洲AV综合色区无码国产播放 | 久久久久久一区二区三区 | 日韩一区二区三区四区五区 | 黄色小视频在线免费看 | 哺乳期喷奶水丰满少妇 | 黄色午夜影院 | 日韩激情成人 | 精品国产96亚洲一区二区三区 | 在线国产区 | 亚洲有吗在线 | 久久久久在线视频 | 久久视频在线免费观看 | 精品国产网 | 久久视频黄色 | 深夜成人福利视频 | 亚洲国产电影在线观看 | 精品成人无码久久久久久 | 亚洲精品av中文字幕在线在线 | 亚洲成人18 | 成人av网站大全 | 无码人妻一区二区三区一 | 亚洲性图一区二区 | 色国产精品 | 午夜免费高清视频 | 国产日韩精品视频 | 让男按摩师摸好爽视频 | 一本大道一区二区 | 六月激情网 | 亚洲天堂精品在线观看 | 男女乱淫视频 | 亚洲欧美成人 | 天天射夜夜撸 | 亚洲高潮av | 国产精品成人在线观看 | 亚洲精品日韩av | 黄色三级小说 | 在线视频观看 | 91老师国产黑色丝袜在线 | 欧美不卡在线视频 | 欧美午夜小视频 | 日皮毛片 | 人妻一区在线 | 黄色小说在线免费观看 | 欧美精品h| 黄页网站视频 | 秋霞午夜 | 日本国产一区二区 | 久久婷婷国产麻豆91天堂 | av在哪里看 | 亚洲女人18毛片水真多 | 精品96久久久久久中文字幕无 | 亚洲第一字幕 | 色久在线| 久久久999国产 | 福利视频在线 | 桃色视频网站 | 免费播放黄色片 | 特级毛片在线观看 | 女人色极品影院 | 成人看片网站 | 精品欧美久久久 | 色婷婷综合久久久中文字幕 | 性欧美13一14内谢 | 性xxxx| 天天爱天天插 | 亚洲社区一区二区 | 97av超碰 | 成人黄色视屏 | 亚洲av无码乱码国产麻豆 | 日韩福利一区二区 | 亚洲视频在线观看免费视频 | 麻豆国产免费 | 调教奶奴 | 激情 小说 亚洲 图片 伦 | 色狠狠久久av大岛优香 | 爱射综合 | 亚洲av综合色区无码二区爱av | 国产成人精品视频一区二区 |