第十一届蓝桥杯java B组第二场-试题A: 门牌制作
生活随笔
收集整理的這篇文章主要介紹了
第十一届蓝桥杯java B组第二场-试题A: 门牌制作
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 一、題目
- 二、解釋說明
- 三、代碼實(shí)例
- 四、題目結(jié)果
一、題目
試題 A: 門牌制作(5分)
【問題描述】
小藍(lán)要為一條街的住戶制作門牌號。
這條街一共有 2020 位住戶,門牌號從 1 到 2020 編號。
小藍(lán)制作門牌的方法是先制作 0 到 9 這幾個數(shù)字字符,最后根據(jù)需要將字
符粘貼到門牌上,例如門牌 1017 需要依次粘貼字符 1、 0、 1、 7,即需要 1 個
字符 0, 2 個字符 1, 1 個字符 7。
請問要制作所有的 1 到 2020 號門牌,總共需要多少個字符 2?
【答案提交】
這是一道結(jié)果填空的題,你只需要算出結(jié)果后提交即可。本題的結(jié)果為一個整數(shù),在提交答案時只填寫這個整數(shù),填寫多余的內(nèi)容將無法得分。
二、解釋說明
有的小伙伴可能會這樣寫代碼,代碼如下:
public class Main {public static void main(String[] args) {int count = 0;for(int i = 1; i <= 2020; i++) {while(i>0){ if(i%10==2)count++;i/=10;}}System.out.println(count);} }發(fā)現(xiàn)控制臺怎么什么輸出也沒有呢?直接炸掉了
是因?yàn)楫?dāng)我們遍歷每一個數(shù)的時候,沒有給他找個替身,原本的值會發(fā)生改變。所以如果一開始i==10的話,執(zhí)行完while循環(huán)的時候i本身就又變成了1,造成了死循環(huán)。
正確的代碼如下,其中x就是替身
三、代碼實(shí)例
public class Main {public static void main(String[] args) {int count = 0;for(int i = 1; i <= 2020; i++) {int x=i;//替身為xwhile(x>0){ if(x%10==2)count++;x/=10;}}System.out.println(count);} }四、題目結(jié)果
624
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的第十一届蓝桥杯java B组第二场-试题A: 门牌制作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构-直接插入排序讲解(C语言)
- 下一篇: Android --- This pro