转任意进制
string decimalToBase(int n, int base) {
if (n == 0) return "0";
const string digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string result = "";
while (n > 0) {
result = digits[n % base] + result;
n /= base;
}
return result;
}
组合数
long long binomialCoefficient(int n, int k) {
if (k < 0 || k > n) return 0;
if (k > n - k) k = n - k; // 使用对称性优化
long long c = 1;
for (int i = 0; i < k; i++) {
c = c * (n - i) / (i + 1);
}
return c;
}
通过stringstream实现string与int之间的类型转换
void example() {
string res = "123 456";
stringstream ss(res);
string a;
int b;
ss >> a >> b;
}
文件操作
void save(string filename, const string& s) {
ofstream out;
out.open(filename, ios::binary | ios::app);
if (out.is_open()) {
out << s << endl;
}
out.close();
}
void read(string filename) {
ifstream in;
in.open(filename, ios::binary);
if (in.is_open()) {
string res;
while(getline(in, res)) {
stringstream ss;
ss << res;
string a, b;
getline(ss, a, ' '), getline(ss, b);
cout << a << ' ' << b << endl;
}
}
in.close();
}
void file()
{
string filename = "test.txt";
save(filename, "Hello World!");
save(filename, "Hello C++!");
read(filename);
}