1 条题解
-
0
自动搬运
来自洛谷,原作者为

btng_smith666
AFOed搬运于
2025-08-24 22:19:06,当前版本为作者最后更新于2020-04-01 10:12:34,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
前言 :
鱼人节来发一篇题解 qwq
一道练习暴力的及其有意思的题——
思路 :
本题主要就是给你一串要敲的键,已知你的 个手指(拇指没有)分别按哪些键,然后让你输出每根手指的按键次数。
很明显这是一个暴力枚举的题,只要循环每个要敲的键,然后判断是哪个手指敲它,把每个手指视为一个累加器累加就行了。具体哪个手指敲哪些键题目中给了个大图说明了。还有一点就是题目中有一句话:
从左到右观察到的每个手指的按键次数
所以这里的输出顺序就是题目中键盘从左到右的顺序,注意这个题目中的键盘有个小小的漏洞,大家都知道 左边的键是
·(由于英文的不好打,所以这里用的是中文的),题目中把这个块也标黄了,但它实际上是不需要判断的。代码 :
#include<bits/stdc++.h>//by btng_smith666 juruo using namespace std;//暴力大法好!!! string str;//输入中的字符串 int a[10];//8个手指,这里我用一个数组表示 int main() { cin>>str; for(int i=0;i<str.size();i++)//循环判断每个要敲的键 { if(str[i]=='1' || str[i]=='Q' || str[i]=='A' || str[i]=='Z') a[1]++; if(str[i]=='2' || str[i]=='W' || str[i]=='S' || str[i]=='X') a[2]++; if(str[i]=='3' || str[i]=='E' || str[i]=='D' || str[i]=='C') a[3]++; if(str[i]=='4' || str[i]=='R' || str[i]=='F' || str[i]=='V' || str[i]=='5' || str[i]=='T' || str[i]=='G' || str[i]=='B') a[4]++; if(str[i]=='6' || str[i]=='Y' || str[i]=='H' || str[i]=='N' || str[i]=='7' || str[i]=='U' || str[i]=='J' || str[i]=='M') a[5]++; if(str[i]=='8' || str[i]=='I' || str[i]=='K' || str[i]==',') a[6]++; if(str[i]=='9' || str[i]=='O' || str[i]=='L' || str[i]=='.') a[7]++; if(str[i]=='0' || str[i]=='P' || str[i]==';' || str[i]=='/' || str[i]=='-' || str[i]=='[' || str[i]==']' || str[i]=='=' || str[i]=='\'')//注意这里判断字符 ' 的时候需要加一个 \ a[8]++; } for(int i=1;i<=8;i++)//从左到右输出八个指头的答案就行 printf("%d\n",a[i]); return 0; }本篇题解到这里就结束了,点个赞再去把它 A 掉吧 qwq !
- 1
信息
- ID
- 5290
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者