第一题源码:
#include<iostream>
#include<string>
using namespace std;
int a[26], b[26];
int fibonacci(int f1, int f2, int n) {
int fn = 0;
if (n == 1) {
return f1;
}
else if (n == 2) {
return f2;
}
else
for (int i = 2; i < n; ++i) {
fn = f1 + f2;
f1 = f2;
f2 = fn;
}
return fn;
}
int main() {
string f1 = "", f2 = "", fn = "";
int n;
cin >> n;
if (n == 1) {
cin >> f1;
}
else
cin >> f1 >> f2;
for (int i = 0; i < f1.size(); ++i) {
++a[f1[i] - 'a'];
}
for (int i = 0; i < f2.size(); ++i) {
++b[f2[i] - 'a'];
}
for (int i = 0; i < 26; ++i) {
if (a[i] != 0 || b[i] != 0) {
int sum = fibonacci(a[i], b[i], n);
if (sum != 0)
cout << (char)(i + 'a') << ':' << sum << endl;
}
}
return 0;
}