for (i = 0; i < 256; i++) t[i] = 0; for (i = 0; i < s.length(); i++) t[s[i]]++; for (i = 0; i < s.length(); i++) if (t[s[i]] == 1) { cout << s[i] << endl; return 0; }
cout << \}
输入:xyzxyw 输出:_________
2.#include using namespace std; int g(int m, int n, int x) { int ans = 0; int i;
if (n == 1) return 1;
for (i = x; i <= m / n; i++) ans += g(m - i, n - 1, i); return ans; } int main() { int t, m, n; cin >> m >> n;
cout << g(m, n, 0) << endl; return 0; }
输入:7 3 输出:_________
3.#include using namespace std; int main() { string ch; int a[200]; int b[200]; int n, i, t, res; cin >> ch; n = ch.length();
for (i = 0; i < 200; i++) b[i] = 0;
for (i = 1; i <= n; i++) { a[i] = ch[i - 1] - '0'; b[i] = b[i - 1] + a[i]; }
res = b[n]; t = 0;
for (i = n; i > 0; i--) { if (a[i] == 0) t++;
if (b[i - 1] + t < res) res = b[i - 1] + t; }
cout << res << endl; return 0; } 输入:
输出:_________
4.#include using namespace std;
int main() { int n, m; cin >> n >> m; int x = 1;
int y = 1; int dx = 1; int dy = 1; int cnt = 0; while (cnt != 2) { cnt = 0; x= x + dx; y= y + dy;
if (x == 1 || x == n) { ++cnt; dx = -dx; }
if (y == 1 || y == m) { ++cnt; dy = -dy; } }
cout << x << \}
输入 1:4 3
输出 1:_________(3 分) 输入 2:2017 1014
输出 2:_________(5 分)
四、完善程序(共 2 题,每题 14 分,共计 28 分)
1.(快速幂)请完善下面的程序,该程序使用分治法求xp?mod m 的值。(第一空 2 分,其余 3 分)
输入:三个不超过 10000 的正整数 x,p,m。 输出:xp?mod m 的值。
提示:若 p 为偶数,xp=(x2)p/2;若 p 为奇数,xp=x*(x2)(p-1)/2。 #include using namespace std; int x, p, m, i, result; int main() { cin >> x >> p >> m;
result =?? ? ? ? ?(1) ? ? ? ??; while (?? ? ? ? ?(2) ? ? ? ??) { if (p % 2 == 1)
result =?? ? ? ? ?(3) ? ? ? ??; p /= 2;
x =?? ? ? ? ?(4) ? ? ? ??; }
cout <? ? ? ? ?(5) ? ? ? ??<< endl;