- 题解
第824题题解
- @ 2026-4-27 18:15:27
传送门:https://ac.tuubu.com/p/824
本题其实不算太难,不过需要学到string,即字符串就可以解决问题。 但是,如果只学会string的初步使用方法,而不记一些实用的函数,那么写起代码来也会比较麻烦。
在介绍本题使用的“string库”中的函数前先讲解本题思路: 通过数字的小数部分的长度来判别数据类型, 那么我们只需利用string获得小数部分,便可求解答案。
好了,看一下我们要使用的函数:
// 这是下列函数所需的头文件,它包含了有关string的实用函数
#include <string>
// 字符串名称.size(),可以得到该字符串的长度
string str = "I love tuubu!";
int n = str.size(); // 此时 n = 13
cout << n << endl; // 输出 13
// 字符串名称.erase(a, b),可以删除一个字符串中从第 a 个下标算起,连续删除 b 个字符
string str = "I don't love tuubu!";
str.erase(2, 6); // 从下标为 2 的 'd' 连续删除6个字符,即 "don't "
cout << str << endl; // 输出 "I love tuubu!"
接下来是代码,仅供参考
#include <bits/stdc++.h>
using namespace std;
int main() {
string str;
cin >> str;
// 处理 str ,使得只保留小数点后的内容
while (str[0] != '.' && str.size() > 0) { // 重复执行直到最前字符为小数点
str.erase(0, 1); // 删除最前字符
}
str.erase(0, 1); // 别忘了删除小数点
// 判断数据类型 + 输出
if (str.size() < 7) cout << "float";
else cout << "double";
return 0;
}
本题解分享到这,如有错误和疑问之处,欢迎指出与探讨。
1 条评论
-
李宇泽 LV 8 MOD @ 2026-4-27 18:17:09写题难,写题解更难啊
- 1