CF656C Without Text 題解
阿新 • • 發佈:2021-12-21
CF656C Without Text 題解
Content
輸入一個字串 \(s\),遍歷每一個字元,如果這個字元是小寫字母,那麼答案就加上這個字母的字母表序;否則,如果這個字元是小寫字母,那麼答案就減去這個字母的字母表序。求最後的答案。
- 字母表序:大寫或小寫字母在字母表中的位置。
資料範圍:\(1\leqslant |s|\leqslant 50\),保證僅包含大小寫字母和 .
。
Solution
直接暴力模擬一下即可,主要難的地方在於讀懂題目裡給你的圖。是大寫字母就加上去,是小寫字母就減去。
給大家兩個公式:
設當前掃到的字元為 \(s_i\)(在下面的公式中,它所代表的數值即為它的 \(\texttt{ASCII}\) 碼)。
- 如果是大寫字母,那麼它的字母表序就是 \(s_i-64\)
- 如果是小寫字母,那麼它的字母表序就是 \(s_i-96\)。
Code
#include <cstdio> #include <cstring> #include <string> #include <iostream> using namespace std; string s; int n, ans; int main() { cin >> s; n = s.size(); for(int i = 0; i < n; ++i) { if(s[i] >= 'A' && s[i] <= 'Z') ans += (s[i] - 64); if(s[i] >= 'a' && s[i] <= 'z') ans -= (s[i] - 96); } printf("%d", ans); }