1、递归实现两个整数乘法
int mut(int a, int b) {
if (b == 0)return 0;
return a + mut(a, b - 1);
}
2、输入奇数n,螺旋打印
#include<iostream>
#include<vector>
using namespace std;
vector<vector<int>> getArr(int n) {
if (n % 2 == 0)return {};
vector<vector<int>> ans(n, vector<int>(n,0));
int loop = 0;
int num = 1;
int startx = n / 2;
int starty = n / 2;
ans[startx][starty] = num++;
starty++;
for (; loop < n / 2; loop++) {
int i = startx;
int j = starty;
//上
for (; i >= n / 2 - loop; i--)ans[i][j] = num++;
//左
for (; j >= n / 2 - loop; j--)ans[i][j] = num++;
//下
for (; i <= n / 2 + loop; i++)ans[i][j] = num++;
//右
for (; j <= n / 2 + loop+1; j++)ans[i][j] = num++;
startx++;
starty++;
}
return ans;
}
int main() {
vector<vector<int>>tem = getArr(11);
for (auto i : tem) {
for (auto ii : i)cout << ii << "\t"; cout << endl;
}cout << endl;
return 0;
}
3、两个人抛硬币,甲如果抛到正面,自己赢得苹果,抛到反面则乙掷硬币,问甲先吃到硬币的概率
答:
首先第一轮,甲能吃到的概率为0.5
第二次,甲想要吃到苹果则需要,第一轮甲抛到反面,第二轮乙抛到反面,第三轮甲抛到正面为0.5*0.5*0.5
所以概率为:1/2+1/8+1/32+...