蓝桥杯算法训练合集九 1.计算税额2.数字统计3.删除字符串中的“*”4.2的次幂表示5.排序

news/2024/10/30 9:29:36/

目录

1.计算税额

2.数字统计

3.删除字符串中的“*”

4.2的次幂表示

5.排序


1.计算税额

问题描述

税务局希望你帮他们编写征税程序,该程序的功能是:首先输入某公司的年销售额sale和税率rate,然后程序将计算出相应的税额tax,并把他显示在屏幕上。计算公式是:tax=sale*rate,结果保留小数点后两位。(注:出自课本第三章第3题)。

输入格式

输入一行,包含两个浮点数sale, rate,分别表示销售额和税率

输出格式

输出一行,包含一个浮点数,表示税额tax,结果保留小数点后两位。

样例输入

500000 0.1

样例输入

50000.00

示例代码

#include<iostream>
#include<iomanip>
using namespace std;int main() {double sale, rate, tax;cin >> sale >> rate;tax = sale * rate;cout << fixed << setprecision(2) << tax << endl;//保留两位小数输出return 0;
}

2.数字统计

问题描述

请统计某个给定范围[L, R]的所有整数中,数字2 出现的次数。 比如给定范围[2, 22],数字2 在数2 中出现了1 次,在数12 中出现1 次,在数20 中出现1 次,在数21 中出现1 次,在数22 中出现2 次,所以数字2 在该范围内一共出现了6次。

输入格式

输入共1 行,为两个正整数L 和R,之间用一个空格隔开。

输出格式

输出共1 行,表示数字2 出现的次数。

样例输入

Sample Input1:
2 22
Sample Input2:
2 100

样例输出

Sample Output1:
6
Sample Output2:
20

数据规模和约定

1 ≤ L ≤ R≤ 10000。

示例代码

#include<iostream>
using namespace std;int main() {int a, b, cnt = 0;cin >> a >> b;int res = a;while (res <= b) {//找每个位置上的数字,如果等于2,则符合题目要求int temp = 1000, temp1 = res;while (temp > 0) {int c = temp1 / temp;temp1 -= c * temp;temp /= 10;if (c == 2) {cnt++;}}res++;}cout << cnt;return 0;
}

3.删除字符串中的“*”

问题描述

主题是:“函数定义与调用、前导字符、串中字符册除”等的综合应用。规定输入的字符串中只包含字母和*号。请编写函数将字符串中的前面*号全部删除,中间和尾部的*号不删除。 例如,若字符串中的内容为******A*BC*DEF*G****,删除后,字符串中的内容则应当A*BC*DEF*G****。在编写函数时,不得使用C语言提供的字符串函数。

样例输入

******A*BC*DEF*G****

样例输出

A*BC*DEF*G****

示例代码

#include<iostream>
using namespace std;int main() {string a;cin >> a;int len = a.length(), index = 0;for (int i = 0; i < len; i++) {if (a[i] != '*') {//遇到第一个不等于'*'的字符就要开始输出index = i;break;}}for (int i = index; i < len; i++) {cout << a[i];}return 0;
}

4.2的次幂表示

问题描述

任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。
将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0
现在约定幂次用括号来表示,即a^b表示为a(b)
此时,137可表示为:2(7)+2(3)+2(0)
进一步:7=2^2+2+2^0 (2^1用2表示)
3=2+2^0
所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)
又如:1315=2^10+2^8+2^5+2+1
所以1315最后可表示为:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

输入格式

正整数(1<=n<=20000)

输出格式

符合约定的n的0,2表示(在表示中不能有空格)

样例输入

137

样例输出

2(2(2)+2+2(0))+2(2+2(0))+2(0)

样例输入

1315

样例输出

2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

提示

用递归实现会比较简单,可以一边递归一边输出

分析

本题要求最后分解成只能由2的2次方、1次方和0次方组成的形式。如果大于这些数的次方则需要进一步递归,每一步都是2(      ),除了2的1次方是2,这个可以放在输出处理掉。

示例代码

#include<iostream>
using namespace std;
int maxi, index, res = 0;
char ans[100];
void fac(int n) {if (n == 2) {ans[res++] = '2';}else if (n == 1) {ans[res++] = '1';}else if (n == 0) {ans[res++] = '0';}else {while (n != 0) {//把n分解成2的n次方加的形式int temp = maxi, temp1 = index;while (temp != 0) {if (n / temp == 1) {//找到一个ans[res++] = '2';ans[res++] = '(';fac(temp1);n -= temp;break;}temp /= 2;temp1--;}if (n == 0) {//如果是最后一个数ans[res++] = ')';}else {ans[res++] = ')';ans[res++] = '+';}}return;}
}
int main() {int n;cin >> n;maxi = 1;for (int i = 1;; i++) {//找到小于题目给出的范围的最大的2次方数,并且是2的多少次方maxi *= 2;if (maxi > 20000) {//如果第一次比20000大,退一步index = i - 1;maxi /= 2;break;}}fac(n);for (int i = 0; i < res; i++) {//如果是1前面的( 和后面的  ),不能输出if (ans[i] == '(') {if (ans[i + 1] != '1') {cout << ans[i];}}else if (ans[i] == ')') {if (ans[i - 1] != '1') {cout << ans[i];}}else if (ans[i] != '1') {//不能输出1cout << ans[i];}}return 0;
}

5.排序

问题描述

编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列。

输入格式

输入只有一行,即三个整数,中间用空格隔开。

输出格式

输出只有一行,即排序后的结果。

样例输入

9 2 30

样例输出

30 9 2

示例代码

#include<iostream>
#include<algorithm>using namespace std;int main() {int a[3];for (int i = 0; i < 3; i++) {cin >> a[i];}sort(a, a + 3);for (int i = 2; i >=0; i--) {cout << a[i]<<" ";}return 0;
}


http://www.ppmy.cn/news/21446.html

相关文章

React之Diff算法

Diff算法概览 在beginWork中会使用Diff算法&#xff0c;对于Diff算法的本质是用来对比Current Fiber与JSX对象&#xff0c;来生成workInProgress Fiber。 对于Diff算法中&#xff0c;将两棵树完全比对的算法的复杂度为O(n3)&#xff0c;其中n是树中元素的数量&#xff0c;对于…

九龙证券|沪指收获2010年以来最强1月 北向资金净买入额刷新历史纪录

昨日&#xff0c;A股小幅调整&#xff0c;2023年1月行情随之收官。全体来看&#xff0c;1月A股商场拾级而上&#xff0c;盘面出现普涨格局&#xff0c;价值与生长风格均有亮眼体现。三大股指中&#xff0c;上证指数1月上涨5.39%&#xff0c;创2010年以来最佳局面。深证成指、创…

在产业互联网时代,以生态和边界为代表的有限市场的瓜分业已完成

在这样一个过程中&#xff0c;阿里们更多地思考的是&#xff0c;如何与产业结合&#xff0c;而非独立于产业之外&#xff0c;仅仅只是做一个旁观者和第三方。无论是它们投身到物流、制造、能源化工等行业之中&#xff0c;还是它们对这些产业的传统玩家们深度赋能&#xff0c;几…

windows系统使用Freeglut+glew库编写opengl程序(Mingw)

Freeglut glut是opengl实用工具集,由Mark Kilgrad所写。可以用来显示窗体,管理用户输入,字体,图像等操作,现在已经停止维护了,它的3.7版本是苹果电脑操作系统Mac OS 10.8(又名“美洲狮”)的opengl实用工具库的框架基础 使用更新的Freeglut替代glut,Freeglut是由Pawel…

【Mysql第五期 排序与分页】

文章目录案例使用的数据脚本1. 排序数据1.1 排序规则1.2 单列排序1.3 多列排序2.分页2.1 需求2.2 实现规则3.课后习题扩展分析原因问题解决总结案例使用的数据脚本 1.mysql脚本下载链接https://download.csdn.net/download/qq_43674360/87408079 2.或者自己新建一个sql后缀文本…

若依配置教程(七)Excel预览功能实现

实现效果及源码 实现效果如下图所示&#xff1a; 实现思路&#xff1a; 1.动态表格&#xff1a;定义表头数组&#xff0c;表格遍历表头生成表格列 2.读取excel文件内容&#xff0c;封装表头&#xff0c;绑定表格数据 代码修改 首先参考若依官网&#xff0c;先实现excel导入功…

webpack前端应用之基础打包

目录 前言&#xff1a;初识 Webpack 5 一、前端工程化 1、webpack ​ &#xff08;2&#xff09;主要功能&#xff1a; 2、webpack的使用&#xff1a;配置文件所需要的信息&#xff08;五大配置属性&#xff09; 3、示例 强调&#xff1a; 4、webpack中使用的loader 二…

Linux常用命令——pvscan命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) pvscan 扫描系统中所有硬盘的物理卷列表 补充说明 pvscan命令会扫描系统中连接的所有硬盘&#xff0c;列出找到的物理卷列表。使用pvscan命令的-n选项可以显示硬盘中的不属于任何卷组的物理卷&#xff0c;这些…