科大讯飞(算法岗0912)

1. 泰勒
double mysin(double x) {
	double p = 0.000001, g = 0, t = x;
	int n = 1;
	do {
		g += t;
		n++;
		t = -t*x*x / (2 * n - 1) / (2 * n - 2);
	} while (fabs(t) >= p);
	return g;
}

int main()
{
	double r, s, k;
	cin >> r >> s;
	if (r * r <= s*s) {
		k = sqrt(mysin(r) * mysin(r) + mysin(s)*mysin(s));
	}
	else {
		k = mysin(r*s) / 2;
	}
	cout << k;
	return 0;
}

2. 错误率
int helper(vector<string>& s1, vector<string>& s2) {
	int s1l = s1.size();
	int s2l = s2.size();
	vector<vector<int>> dp(s1l, vector<int>(s2l, 0));
	for (int i = 0; i < s1l; i++) {
		dp[i][0] = i;
	}
	for (int i = 0; i < s2l; i++) {
		dp[0][i] = i;
	}
	for (int i = 1; i < s1l; i++) {
		for (int j = 1; j < s2l; j++) {
			if (s1[i] == s2[j]) {
				dp[i][j] = dp[i - 1][j - 1];
			}
			else {
				dp[i][j] = min({ dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1] }) + 1;
			}
		}
	}
	return dp[s1l - 1][s2l - 1];
}

3. 木棍与正方形
int helper(vector<int>& num, int avg) {
	int res = 0;
	for (auto n : num) {
		res += abs(n - avg);
	}
	return res;
}


int main()
{
	vector<int> num;
	int tmp, sum = 0;
	do {
		cin >> tmp;
		sum += tmp;
		num.push_back(tmp);
	} while (getchar() != '\n');
	int avg = ceil(sum / num.size());
	int res = min(helper(num, avg), helper(num, avg - 1));
	cout << res;
	getchar();
	return 0;
}



#科大讯飞#
全部评论

相关推荐

牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-12 10:48
已编辑
0offer泡成硕鼠京观:邻居家老哥19届双2硕大厂开发offer拿遍了,前几天向他请教秋招,他给我看他当年的简历,0实习实验室项目技术栈跟开发基本不沾边😂,我跟他说这个放在现在中厂简历都过不了
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务