蓝桥杯2014年第五届C/C++ B组省赛习题题解

目录

第一题:啤酒和饮料(枚举)

第二题:切面条(数学)

第三题:李白打酒(dfs)

第四题:史丰收速算

第五题:打印图形

第六题:奇怪的分式(枚举)

 第七题:六角填数

第八题:蚂蚁感冒(数学)

第九题:地宫取宝

第十题:小朋友排队(树状数组)


题目来源:

2014年第五届C/C++ B组蓝桥杯省赛真题_元气算法的博客-优快云博客

第一题:啤酒和饮料(枚举)

#include<iostream>
using namespace std;
int main()
{
	for (int i = 0; i < 82.3 / 2.3; i++)
	{
		for (int j = 0; j < 82.3/1.9; j++)
		{
			if (2.3 * i + 1.9 * j == 82.3)
			{
				cout << i << endl;
				return 0;
			}
		}
	}
}

第二题:切面条(数学)

 解析:

2014年第五届C/C++ B组蓝桥杯省赛真题_元气算法的博客-优快云博客

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
	//计算对折拐弯处数目(等比公式推导)
	int a = pow(2,10)-1;
	//无对折情况下数目
	int b = pow(2,11);
	//最后面条数目
	cout << b-a;
	return 0;
} 

第三题:李白打酒(dfs)

#include<iostream>
using namespace std;
int ans;

void dfs(int x, int y, int z)
{
	if (x < 0 || y < 0) return;

	if (x == 0 && y == 1 && z == 1) ans++;

	if (x > 0) dfs(x - 1, y, z * 2);
	if (y > 0) dfs(x, y - 1, z - 1);
}

int main()
{
	dfs(5, 10, 2);

	cout << ans;

	return 0;
}

第四题:史丰收速算

//计算个位 
int ge_wei(int a)
{
	if(a % 2 == 0)
		return (a * 2) % 10;
	else
		return (a * 2 + 5) % 10;	
}

//计算进位 
int jin_wei(char* p)
{
	char* level[] = {
		"142857",
		"285714",
		"428571",
		"571428",
		"714285",
		"857142"
### 解决 Python 爬虫抓取网页时出现的中文乱码问题 #### 编码设置与响应处理方法 当使用 `requests` 库获取网页内容时,如果服务器返回的内容编码不是 UTF-8 或者其他常见的字符集,则可能出现乱码现象。为了防止这种情况发生,在请求完成后应立即检查并调整响应对象中的 `.encoding` 属性。 对于大多数情况来说,手动指定正确的编码方式是最直接有效的方式之一: ```python response = requests.get(url, headers=headers) response.encoding = &#39;utf-8&#39; print(response.text) # 输出正常显示的文字而非乱码 ``` 然而有时候即使指定了正确编码仍然无法解决问题,这时可以尝试让 Requests 自动检测页面的实际编码格式,并将其应用到解码过程中去: ```python response = requests.get(url, headers=headers) response.encoding = response.apparent_encoding page_text = response.text ``` 需要注意的是,虽然上述两种方法能够解决大部分场景下的乱码问题,但在某些特殊情况下它们可能并不适用[^2]。此时建议开发者先通过浏览器查看目标网站的具体编码声明(通常位于 `<head>` 部分内的 `<meta charset="...">` 标签内),再据此设定合适的编码参数。 另外值得注意的一点是,除了确保 HTTP 请求层面的数据传输采用恰当的字符集外,后续对 HTML 文档的操作也需要考虑到编码一致性的问题。例如在利用 BeautifulSoup 进行 DOM 解析之前最好也显式地告知其输入流所使用的编码形式: ```python soup = BeautifulSoup(page_text, "html.parser", from_encoding="utf-8") ``` 这样做不仅有助于提高解析效率,还能进一步减少因编码差异而引发的各种潜在错误。 最后附上一段完整的示范代码用于展示整个流程: ```python import requests from bs4 import BeautifulSoup def fetch_page_content(url, custom_headers=None): try: resp = requests.get(url=url, headers=custom_headers or {}) # 尝试自动识别编码 detected_charset = resp.apparent_encoding.lower() common_encodings = [&#39;gbk&#39;, &#39;gb2312&#39;] if any(enc in detected_charset for enc in common_encodings): final_charset = &#39;gb18030&#39; # 更广泛的兼容性 elif &#39;utf-8&#39; not in detected_charset and &#39;ascii&#39; != detected_charset: raise ValueError(f"Unexpected encoding found: {detected_charset}") else: final_charset = detected_charset resp.encoding = final_charset soup = BeautifulSoup(resp.text, features="lxml", from_encoding=final_charset) return str(soup), None except Exception as e: return "", repr(e) if __name__ == "__main__": url_to_scrape = input("请输入要爬取的目标网址:") content, error_msg = fetch_page_content(url=url_to_scrape) if error_msg is None: print(content[:500]) # 打印前500个字符作为示例 else: print(f"发生了异常:{error_msg}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值