华为研发3.4 笔试第二题参考
时间过去了两分钟后搞出来了。。。心态爆炸,我自己试了几组数据没问题,但还是想让大佬看看这个代码有啥疏漏之处,请多多指教,不胜感激。
还有,代码是莽出来的没啥注释还请见谅。
另外,我看了下,等于0的情况貌似没考虑清楚😂
#include <bits/stdc++.h>
using namespace std;
int calcu(int a, int b) { //概率统计公式
int ans = 1, mid = b;
while (b--) {
ans *= a--;
}
ans /= mid;
return ans;
}
int main() {
int n, k;
cin >> n >> k;
cout << calcu(n + k - 1, k - 1) << endl;
string aa;
char mid;
for (int i = 0; i < n; i++)
aa += '*';
for (int i = n; i < n + k - 1; i++)//输入‘*‘和’|‘
aa += '|';
cout << aa << endl;
for (int i = n; i < n + k && (aa[i] == '*' || aa[i] == '|'); i++) {
for (int j = i; j > i - n; j--) {
mid = aa[j];
aa[j] = aa[j-1];
aa[j-1] = mid;
cout << aa << endl;
}
}
return 0;
} 

