诡异
3个示例都通过了,可提交上去,有3个case没过,搞的我一头雾水,有些懵圈。
老码农让我又加测了几个case,让我注意边界值,我测了机组,都没有问题啊。
往往这个时候,老码农同学就该操刀上场了。他的经典台词:姜是老的辣,看我的。
果然不服还是不行,他劈里啪啦测试了几组数据,就测出bug了。
题目的示例数据
代码语言:javascript复制BRUTMHYHIIZP
输出结果是
代码语言:javascript复制10000000000000000
他测试时输入
代码语言:javascript复制BRUTMHYHIIZQ
而输出结果,还是
代码语言:javascript复制10000000000000000
肯定是不对的,我扫了下代码,判断应该是pow
函数搞的鬼,那我就不用你了。
详细看后面的代码。
补充知识点
且看,pow函数的参数
代码语言:javascript复制pow(double _X, double _Y)
pow函数的输入和输出都是double,肯定是精度出问题了。此时,可以考虑用快速幂来解决精度问题
知识点
- 快速幂
- https://oi-wiki.org/math/binary-exponentiation/
题目
在另一个世界的AtCoder上举办的AtCoder Big Contest将一次性出现
问题。
问题的ID从第一个问题开始依次为A
,B
,…,Z
, AA
, AB
, ..., ZZ
, AAA
, ... 来定义自定义外观。
也就是说,ID是按照以下顺序附加的。
- 按字典顺序排列长度为1的大写字母字符串
- 按字典顺序排列长度为2的大写字母字符串
- 按字典顺序排列长度为3的大写字母字符串
- ......
这个竞赛包含的问题的ID的字符串S被给予,请回答那个是第几个问题。
制約
- S作为AtCoder Big Contest中包含的问题的ID是正确的
入力
代码语言:javascript复制S
出力
把答案作为整数输出。
入力例 1
代码语言:javascript复制AB
出力例 1
代码语言:javascript复制28
ID为AB
的问题是AtCoder Big Contest的第28个问题。
入力例 2
代码语言:javascript复制C
出力例 2
代码语言:javascript复制3
ID为C
的问题是AtCoder Big Contest的第三个问题。
入力例 3
代码语言:javascript复制BRUTMHYHIIZP
出力例 3
代码语言:javascript复制10000000000000000
ID为BRUTMHYHIIZP
的问题是AtCoder Big Contest的
问题,即最终问题。
小码匠
代码
- AC
#include <bits/stdc .h>
using namespace std;
#define endl 'n';
void best_coder() {
string s;
cin >> s;
unsigned long long ans = 0;
int j = 0;
for (int i = s.size() - 1; i >= 0; --i) {
long long p = 1;
for (int j = 0; j < i; j) {
p *= 26;
}
ans = (s[j] - 'A' 1) * p;
j;
}
cout << ans;
}
void happy_coder() {
}
int main() {
// 提升cin、cout效率
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
// 小码匠
best_coder();
// 最优解
// happy_coder();
// 返回
return 0;
}
AC: 47 WA: 3
代码语言:javascript复制#include <bits/stdc .h>
using namespace std;
#define endl 'n';
void best_coder() {
string s;
cin >> s;
long long ans = 0;
long long j = 0;
for (long long i = s.size() - 1; i >= 0; --i) {
ans = (s[j] - 'A' 1) * pow(26, i);
j;
}
cout << ans;
}
void happy_coder() {
}
int main() {
// 提升cin、cout效率
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
// 小码匠
best_coder();
// 最优解
// happy_coder();
// 返回
return 0;
}