2018普及组——标题统计&龙虎斗
1.标题统计
题目链接
没什么好说的,直接输入,统计非空字符的个数。
<法一>
需要注意的是,这里不能直接用scanf("%s")或cin输入字符串,因为这两种方式是碰到空格或换行停止输入,而输入的标题是可能包含空格的,所以我们在这里用getline来输入。
getline用途:字面意思,获取一行(的字符),而不是遇到空格停止输入。
getline语法结构:
g
e
t
l
i
n
e
(
c
i
n
,
s
t
r
i
n
g
的
名
称
)
getline(cin,string的名称)
getline(cin,string的名称)
代码:
#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
int ans;
string s;
int ck(char c){
//其实这里写麻烦了,直接判断是否为空格,是返回0,否则返回1就行了。
if(c>='0'&&c<='9')return 1;
if(c>='a'&&c<='z')return 1;
if(c>='A'&&c<='Z')return 1;
return 0;
}
int main(){
getline(cin,s);
for(int i=0;i<s.length();++i)
ans+=ck(s[i]);
printf("%d",ans);
return 0;
}
<法二>
直接用判断是否为文件末尾决定是否继续输入,理由同上。因为用 c i n cin cin 输入单个字符会自动过滤空格,本人懒得多写一个判断,就用 c i n cin cin 啦~
代码:
#include<iostream>
using namespace std;
char c;
int ans;
int main(){
while(cin>>c)ans++;
cout<<ans;
return 0;
}
2.龙虎斗
题目链接
一道简单的模拟(因为做了15分钟只得了52分,所以划掉)。、
我们来捋一捋。
Step 1:输入(这不废话吗)
Step 2:计算龙方气势与虎方气势
别忘了加上天降神兵!(过来人的忠告)
Step 3:i~n循环模拟,计算p2。
每次循环新建两个临时变量分别储存当p2==i时的龙方气势与虎方气势,用变量cha储存它们差的绝对值最小值,如当前两个临时变量之差的绝对值小于cha,更新cha=当前临时变量之差的绝对值,p2=i。
代码:
对了,注意long long!!!(还是过来人的忠告)
不知为何,用 scanf("%lld") 输入就只有80分(好像跟直接用%d输入错的是一样的点???),而用cin就过了???
知道原因的大佬麻烦在评论区告诉我一声,Thanks♪(・ω・)ノ
代码链接
都看完了你还没有动静,难不成是想白嫖?
—— · EOF · ——
真的什么也不剩啦 😖