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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP