好奇的薯隊長(1到n,1的個數)

2021-09-22 22:41:52 字數 951 閱讀 3372

時間限制:1秒

空間限制:32768k

薯隊長在平時工作中需要經常跟數字打交道,某一天薯隊長收到了乙個滿是數字的**,薯隊長注意到這些數字裡邊很多數字都包含1,比如101裡邊包含兩個1,616裡包含乙個1。

請你設計乙個程式幫薯隊長計算任意乙個正整數n(0輸入描述:

正整數n(0輸出描述:

從1到n(包括n)的所有整數數字裡含有多少個1

輸入例子1:

1
輸出例子1:

1
輸入例子2:

13
輸出例子2:

6
例子說明2:

從1到13(包括13)有13個數字,其中包含1的數字有1,10,11,12,13,這些數字裡分別有1,1,2,1,1個1,所以從1到13(包括13)的整數數字中一共有1+1+2+1+1=6個1
#include#include#includeusing namespace std;

typedef long long ll;

int main()

else if(s == 1)

else

b++;

t/=10;

}cout

}///當前位大於1, 該位上1的個數有: [n/ 10^(b+1) + 1 ] * 10^b

///當前位等於0, 該位上1的個數有: [n/ 10^(b+1) ] * 10^b

///當前位等於1, 該位上1的個數有: [n/ 10^(b+1) ] * 10^b + n%10^b + 1

///個位為第0位

0到n 1中缺失的數字

一 題目 乙個長度為n 1的遞增排序陣列中的所有數字都是唯一的,並且每個數字都在範圍0到n 1之內。在範圍0到n 1的n個數字中有且只有乙個數字不在該陣列中,請找出這個數字。二 思路 分析易知,陣列形式如下 如果從頭到尾依次比較值與小標是否相等,時間複雜度為o n 效率低。由於是排序陣列,我們繼續考...

計算1到N中包含數字1的個數

mark n為正整數,計算從1到n的所有整數中包含數字1的個數。比如,n 10,從1,2.10,包含有2個數字1。相信很多人都能立刻得出以下的解法 for n n 這是最直接的解法,但遺憾的是,時間複雜程度為o n logn 因為還需要迴圈判斷當前的n的各位數,該判斷的時間複雜程度為o logn 接...

求1到N的所有整數中「1」的個數

題意 給定乙個十進位制的整數n,求1到n的所有整數中 1 出現的個數 解題思路 最簡單的一種方法是對1到n中的每個整數的每一位進行判斷,使用除法與取餘的方式,這種方法的時間複雜度是o n logn 解法一 程式設計之美中通過分析,總結了這樣的乙個規律 假設要處理的資料n abcde,現在要計算百位上...