藍橋杯 1的個數 C

2021-10-16 17:30:06 字數 1028 閱讀 3129

問題描述

輸入正整數n,判斷從1到n之中,數字1一共要出現幾次。例如1123這個數,則出現了兩次1。例如15,那麼從1到15之中,一共出現了8個1。

輸入格式

乙個正整數n

輸出格式

乙個整數,表示1出現的資料

樣例輸入

樣例輸出

#include

變數 x;

log10

(x)//對x取對數 log10(100) 2

ceil

(x)//對x向上取整 ceil(1.1) 2

floor

(x)//對x向下取整 floor(1.9) 2

round

(x)//對x四捨五入 round(2.3) 2 round(2.5) 3

1.輸入乙個數n,然後從1到n逐個迴圈;

2.設定乙個計數器count,發現某個數含有乙個「1」,就count++;

3.從第一位開始查 x%10就是第一位位 x/10就是下一位 不斷x=x/10 再x%10可以得到每一位

4.每乙個數需要逐個檢查,所以需要迴圈這個數的長度的次數(比如101需要檢查3次)對10取對數向上取整得到迴圈條件

ceil(log10(i))

5.發現演算法不能把類似10 100 1000計數器計入,所以計數器加上該數的向下取整

floor(log10(i))

6.發現演算法log10(1)是結果為0,計數器不計數為「1」的情況

//1的個數

#include

#include

using

namespace std;

intmain()

} count +

=floor

(log10

(n))

;//要加上多少個10的倍數 如10 100 1000

cout << count;

return0;

}

藍橋杯 2的個數

小藍要為一條街的住戶製作門牌號。這條街一共有2020位住戶,門牌號從1到2020編號。小藍製作門牌的方法是先製作0到9這幾個數字字元,最後根據需要將字元貼上到門牌上,例如門牌1017需要依次貼上字元1 0 1 7,即需要1個字元0,兩個字元1,乙個字元7.請問 要製作所有的1到2020號門牌,總共需...

衝刺藍橋杯C 基礎1

明年打算衝刺一下藍橋杯,現在開始準備三個月看看能什麼效果!加油吧,小夥子!分隔符 機器指令 五大類語句 表示式語句 函式呼叫 控制語句 7種 復合語句 空語句 預處理指令不是語句 print 是個標準庫函式不是關鍵字 sizeof 不是函式 而是操作符 include 和 define 是預處理指令...

統計單詞個數 藍橋杯 C 動態規劃

給出乙個長度不超過200的由小寫英文本母組成的字母串 約定 該字串以每行20個字母的方式輸入,且保證每行一定為20個 要求將此字母串分成k份 1 k 40 第一行有二個正整數 p,k p表示字串的行數 k表示分為k個部分。接下來的p行,每行均有20個字元。再接下來有乙個正整數s,表示字典中單詞個數。...