1 条题解
-
0
C++ :
#include <iostream> #include <algorithm> #include <map> #include <vector> #include <string> using namespace std; const int N = 10; int fact[N + 1]; int Solve(string word) { int vec[N + 1] = { 0 }; char src, dest; int i, j; reverse(word.begin(), word.end());//简单翻转一下字符串,方便下面做处理而已 for (i = 0; i < word.length(); i++) { src = word[i]; for (j = 0; j < i; j++) { dest = word[j]; if (dest <src) vec[i]++; } } int sum = 0; for (i = 0; i < word.length(); i++) { sum += vec[i] * fact[i]; } return sum; } int main() { fact[0] = 1; for (int i = 1; i <= N; i++) { fact[i] = i * fact[i - 1]; } string word; while (cin >> word) { cout << Solve(word) << endl; } //system("pause"); return 0; }
- 1
信息
- ID
- 1191
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者