統計1~n中數字2出現的次數
例:n=abcdefg
例:請統計某個給定範圍[l, r]的所有整數中,數字2出現的次數。
比如給定範圍[2, 22],數字2在數2**現了1次,在數12**現1次,在數20**現1次,在數21**現1次,在數22**現2次,所以數字2在該範圍內一共出現了6次。
#include using namespace std;
int f(int n)
res+=left*power;
if(num[i]==2) res+=right+1;
else if(num[i]>2) res+=power;
}return res;
}int main()
公升級版:試計算在區間1 到n 的所有整數中,數字x(0 ≤ x ≤ 9)共出現了多少次?
當x為1到9時,分析過程同上。當x為0時,需要注意有一種情況是不存在的,即當前位是0,並且前面幾位是000,那麼後面的數字就是0000***了,合法的數字不能有前導0。所以字首的取值範圍是(001~abc-1),字尾為(000~999),共(abc-1)*1000個。所以當x為0時,計算的每一位都要減去乙個power
int f(int n,int x)
/*當x不為0時,字首數量為abc*power
當x為0時,字首數量為(abc-1)*power
*/res+=left*power;
if(!x) res-=power;
if(num[i]==x) res+=right+1;
else if(num[i]>x) res+=power;
}return res;
}
1 n 之間 數字x出現的次數
宣告 僅個人小記 輸入 n 整數,0 x 9 輸出 1 n 中 數字x出現的次數 include include using namespace std int main void endtime clock cout cnt endl cout time elpased double endtim...
1 n中1出現的次數
輸入乙個整數 n 求1 n這n個整數的十進位制表示中1出現的次數。例如,輸入12,1 12這些整數中包含1 的數字有1 10 11和12,1一共出現了5次。示例 1 輸入 n 12 輸出 5 示例 2 輸入 n 13 輸出 6 解析需要通過找規律來分析。假設我們對5014這個數字求解。1 個位上1出...
計算1至n中數字X出現的次數
以 n 2593,x 5 為例來解釋如何得到數學公式。從 1 至 2593 中,數字 5 總計出現了 813 次,其中有 259 次出現在個位,260 次出現在十位,294 次出現在百位,0 次出現在千位。現在依次分析這些資料,首先是個位。從 1 至 2590 中,包含了 259 個 10,因此任意...