C++ 中在給定範圍內統計以 k 結尾的數字


給定一個區間 [first, last]。目標是找到在這個區間 [first, last] 內,個位數為 k 的數字的個數。

我們將從 i=first 遍歷到 i=last。對於每個數字 i,將其個位數與 k 進行比較,如果相同,則將計數器加 1。

讓我們透過例子來理解。

輸入 − first=8 last=40 , k=8

輸出 − 個位數為 k 的數字的個數 − 4

解釋

Numbers between 8 and 40 with unit digit = 8
8,18, 28, 38

輸入 − first=100 last=200 , k=9

輸出 − 個位數為 k 的數字的個數 − 10

解釋

Numbers between 100 and 200 with unit digit = 9
109, 119, 129, 139, 149, 159, 169, 179, 189, 199.
Total:10

下面程式中使用的方案如下

  • 我們使用兩個整數 first 和 last 來定義區間 [first, last]。

  • 函式 getCount(int fst, int lst, int k) 獲取區間變數和 k,並返回 fst 和 lst 之間個位數為 k 的數字的個數。

  • 將初始計數器設定為 0。

  • 使用 for 迴圈從 i=fst 開始到 i=lst,對於每個 i,計算個位數為 ldigit=i%10。

  • 如果 ldigit==k,則將計數器加 1。

  • 返回計數器作為結果。

示例

 即時演示

#include <bits/stdc++.h>
using namespace std;
int getCount(int fst,int lst,int k){
   int count=0;
   for(int i=fst;i<=lst;i++){
      int ldigit=i%10; //to get last digit
      if(ldigit==k) //if both are equal increment count
         { ++count; }
   }
   return count;
}
int main(){
   int first = 5, last = 30;
   int K=5;
   cout<<"Numbers with unit digit K in range:"<<getCount(first, last, K);
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

Numbers with unit digit K in range:3

更新於: 2020-08-31

428 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告