# String# Greedy

k181 - 我愛 88 大回饋

🔗 前往 ZeroJudge 原題

題目描述

題目要求根據身分證字號中 '8' 的數量計算折扣。'8' 的數量越多,折扣越大,最多到 8 個 '8' 時折扣為 2 折。

解題思路

這題的解題思路非常簡單,只需要遍歷身分證字號字串,計算其中 '8' 的數量,然後根據 '8' 的數量計算折扣即可。折扣的計算方式是:'8' 的數量乘以 10,得到折扣百分比。

複雜度分析

  • 時間複雜度: O(n),其中 n 是身分證字號的長度。因為需要遍歷字串一次。
  • 空間複雜度: O(1),因為只使用了常數個額外的變數。

程式碼

#include <iostream>
using namespace std;
string s;
int ct=0;
int main(){
	cin >> s;
	for(int i=0;i<s.size();++i)
		if(s[i]=='8')++ct;
	cout << s << " can get " << ct*10 << "% off.";
}

Discussion