科大讯飞笔试C++第二题

就讨厌这种题,不难就费时间,
思路:判断每个“,”之间是不是全是数字,还有有几个小数点,小数点不能位于首尾,基本上就KO了吧
#include<iostream>
#include<cstdio>
#include<string>
#include<vector>

using namespace std;

int main() {
string str;
cin >> str;
int n = str.size();
vector<char>v1;
int flag = 1;
int d = 0;//记录有几个小数点
int num = 0;//记录结果
for (int i = 0; i <=n; i++) {
if (str[i] == ','|| i==n) {
int m = v1.size();
if (flag &&  m>= 2) {
int sum = v1.front()-'0' + v1[m - 1]-'0';
if (sum > 8)
num++;
if (i == n)
break;
}
v1.clear();
d = 0;
flag = 1;
if(str[i+1]=='.')flag = 0;
continue;
}
if (str[i] == '.') {
d++;
}
if(str[i]=='.'||(str[i] <= '9' && str[i] >= '0' && flag)) {
if (d <= 1) {
v1.push_back(str[i]);
}
else {
v1.clear();
flag = 0;
d = 0;
}
}
else {
flag = 0;
v1.clear();
d = 0;
}
}
cout << "result:" << num << endl;
system("pause");
}

#笔试题目##科大讯飞#
全部评论
什么时候投的?我投的没反应啊
点赞 回复
分享
发布于 2019-09-12 14:41
题目说的不清楚,小数到底算不算,我没算小数的,然后过了
点赞 回复
分享
发布于 2019-09-12 15:11
博乐游戏
校招火热招聘中
官网直投

相关推荐

点赞 9 评论
分享
牛客网
牛客企业服务