深信服2020春招题2

笔试题目太长记不住,以后再补
以下是我考试时的大致代码,测试用例通过率为20%,在最后1分钟提交,没有时间调试了。
这道题目用到了计算二进制中1的个数,知道这一点这道题目还是很容易的。

# include<stdio.h>

int Numberof1(int a)
{
	int count = 0;
	while (a)
	{
		count++;
		a = (a - 1) & a;
	}
	return count;
}

int main()
{
	int road, zhi_speed, wan_speed;
	scanf("%d %d %d", &road, &zhi_speed, &wan_speed);
	if ((road < 127) || (road > 255)) {
		printf("error");
		return 0;
	}
	int count1 = Numberof1(road);
	int count2 = 8 - count1;
	if ((count1 * zhi_speed + count2 * wan_speed) > (count1 * 130 + count2 * 90))
		printf("win");
	else
		printf("lose");

	return 0;
}

测试用例未全部通过可能是因为边界条件没有满足全部的要求,应当再增加对直线速度和弯道速度的限制,具体别的条件看到题目之后我再看丢了哪个吧。

发布了58 篇原创文章 · 获赞 3 · 访问量 2159

猜你喜欢

转载自blog.csdn.net/weixin_43936250/article/details/104424820