蓝桥杯算法训练_2的次幂表示+前缀表达式+Anagrams问题+出现次数最多的整数
今天做了4个简单的题,题目虽然是简单,但是对于我这样的小白,还是有很多东西需要学习的。
2的次幂表示
上面就是题目,题目说的也很清晰了,接下来就是递归的实现:
#include<iostream>
using namespace std;
void puts(int n)
{
int i=,num=;
int a[] = {};
while()
{
if(n==) break;
int temp = n%;
if(temp!=)
{
a[num] = i;
num++;
}
i++;
n = n/;
}
for(i = num-; i >= ; i--)
{
if(a[i]==)
{
cout<<"2(0)";
}
else if(a[i]==)
{
cout<<"";
}
else if(a[i]>=)
{
cout<<"2(";
puts(a[i]);
cout<<")";
}
if(i!=)
{
cout<<"+";
}
} }
int main()
{
int n;
cin>>n;
puts(n);
return ;
}
关键是找到应该在哪里递归。
前缀表达式
我们之前说到过后缀表达式,实际上,前缀表达式更符合计算机运算规则。
#include<iostream>
using namespace std;
void add(int a,int b)
{
cout<<a+b;
}
void sub(int a,int b)
{
cout<<a-b;
}
void mul(int a,int b)
{
cout<<a*b;
}
void div(int a,int b)
{
cout<<a/b;
}
int main()
{
char a;
int b,c;
cin>>a>>b>>c;
switch(a)
{
case '+':
add(b,c);
break;
case '-':
sub(b,c);
break;
case '*':
mul(b,c);
break;
case '/':
div(b,c);
break;
default:
break;
}
return ;
}
Anagrams问题
看到这个问题的时候,首先想到了之前学长教过的,要充分利用下标,最多有26个英文字母。我们开创两个数组,分别存放两个字符串,将英文字母在字母表中的顺序对应数组的下标,是个很不错的选择。
但是我第一次写的时候,使用的是char型数组,一个一个读入,最后发现运行超时,改用字符串读入方法,问题就得以解决了,这就提示我,以后遇到字符串问题,优先考虑字符串处理。
代码如下:
#include<iostream>
#include<string.h>
using namespace std;
int trans(char a)
{
if(a>='a'&&a<='z')
{
return a-'a';
}
if(a>='A'&&a<='Z')
{
return a-'A';
}
}
int main()
{
int num1[]={};
int num2[] = {};
int flag = ;
char a[],b[];
/* while(1)
{
scanf("%c",&a);
if(a=='\n') break;
num1[trans(a)]++;
}
while(1)
{
scanf("%c",&a);
if(a=='\n') break;
num2[trans(a)]++;
} */
cin>>a;
cin>>b; for(int i = ; i < strlen(a); i++)
{
num1[trans(a[i])]++;
}
for(int i = ; i < strlen(b); i++)
{
num2[trans(b[i])]++;
}
for(int i = ; i < ; i++)
{
if(num1[i]!=num2[i])
{
flag = ;
cout<<"N";
break;
}
}
if(flag==)
cout<<"Y";
return ;
}
在主函数中有一点注释部分,这就是最初使用的方法。
出现次数最多的整数
设计两个数组,一个存放的就是输入的数据,另一个存放的是对应出现的次数。这里就需要考虑一下,有的数字重复出现,怎么样才能使其实现计数,并且将两个数组实现一一对应。
代码如下:
#include<iostream>
using namespace std;
int main()
{
int num[] = {};//存放每个数字
int sum[] = {};//存放每个数字的个数
int n;
int i = ;
int j = ;
cin>>n;
for(i = ; i < n; i++)
{
cin>>num[i];
if(num[i]==num[i-])
{
sum[j-]++;
j--;
}
j++;
}
if(j!=)
{
int max = ;
for(int j = ; j < i; j++)
{
if(sum[j]<sum[j+])
{
max = j+;
}
}
cout<<num[max];
return ;
}
}
关键是这里:
【感想】简单题虽然称之为简单题,但是还是需要练习,绝对不能眼高手低,没有一次100%成功,就说明自己还是修炼不够,需要继续努力。从小处获取经验,慢慢积累,相信自己。
蓝桥杯算法训练_2的次幂表示+前缀表达式+Anagrams问题+出现次数最多的整数的更多相关文章
- Java实现 蓝桥杯 算法训练 2的次幂表示
算法训练 2的次幂表示 时间限制:1.0s 内存限制:512.0MB 问题描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001. 将这种2进制表示写成2的次幂的和的形式, ...
- Java实现 蓝桥杯 算法训练 出现次数最多的整数
算法训练 出现次数最多的整数 时间限制:1.0s 内存限制:512.0MB 提交此题 问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会 ...
- 蓝桥杯算法训练<一>
一.图形显示 此题虽然简单,但是需啊哟注意的是,每个“*”后边有一个空格] 问题描述 编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数): * * * * * * * * ...
- Java实现 蓝桥杯 算法训练 猴子吃包子(暴力)
试题 算法训练 猴子吃包子 问题描述 从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同:肉包每秒钟吃x个:韭菜包每秒钟吃y个:没有馅的包子每秒钟吃z个:现在有x1个肉 ...
- Java实现蓝桥杯 算法训练 大等于n的最小完全平方数
试题 算法训练 大等于n的最小完全平方数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输出大等于n的最小的完全平方数. 若一个数能表示成某个自然数的平方的形式,则称这个数为完全平 ...
- 蓝桥杯算法训练 java算法 表达式求值
问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值.其中除表示整除. 输入格式 输入一行,包含一个表达式. 输出格式 输出这个表达式的值. 样例输入 1-2+3*(4-5) 样例输出 - ...
- java实现 蓝桥杯 算法训练 Password Suspects
问题描述 在年轻的时候,我们故事中的英雄--国王 Copa--他的私人数据并不是完全安全地隐蔽.对他来说是,这不可接受的.因此,他发明了一种密码,好记又难以破解.后来,他才知道这种密码是一个长度为奇数 ...
- 蓝桥杯 算法训练 Torry的困惑(基本型)(水题,筛法求素数)
算法训练 Torry的困惑(基本型) 时间限制:1.0s 内存限制:512.0MB 问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7……这样的数叫做质数.Torry突 ...
- 蓝桥杯 算法训练 区间k大数查询(水题)
算法训练 区间k大数查询 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. ...
随机推荐
- 用mybatis实现dao的编写或者实现mapper代理
一.mybatis和hibernate的区别和应用场景hibernate:是一个标准的ORM框架(对象关系映射).入门门槛较高的,不需要写sql,sql语句自动生成了.对sql语句进行优化.修改比较困 ...
- [leetcode-565-Array Nesting]
A zero-indexed array A consisting of N different integers is given. The array contains all integers ...
- container_of 的用法
1.问题:如何通过结构中的某个变量获取结构本身的指针???关于container_of见kernel.h中:/*** container_of - cast a member of a structu ...
- 如何编写高效的SQL
编写高效的sql可以给用户带来好的体验,需要开发这没有意识到这一点因为他们不关心也不知道怎么做.高效的sql可以给用户节省很多时间,这样就不需要dba来找上门,也不需要搭建RCA和性能调优. 性能不好 ...
- Apache+Tomcat实现动静分离
完成Tomcat集群搭建后,我们只需修改两.三处即可实现动静分离. 1.将原来httpd.conf中JkMount的路由规则都放入conf/extra/httpd-urimap.conf中: /*=l ...
- vijos1062题解
题目: 交谊舞是2个人跳的,而且一男一女 -____-||||. 由于交谊舞之前的节目安排,所有的表演者都站成了一排.这一排人的顺序满足2点: ①对于一对舞伴男生站在女生的左边. ②任何一对舞伴之间, ...
- JQuery中常用的选择器
属性选择器 1> [attribute] 概述:匹配包含给定属性的元素. 示例 jQuery 代码:$("div[id]") 描述:查找所有含有 id 属性的 div 元素 ...
- Host 'hello-PC' is not allowed to connect to this MySQL server远程连接mysql授权
问题:"Host 'admin-PC' is not allowed to connect to this MySQLserver" (其中,admin-PC为我的机器名) 原 ...
- Luogu 1060 开心的金明 / NOIP 2006 (动态规划)
Luogu 1060 开心的金明 / NOIP 2006 (动态规划) Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨 ...
- socket 异步通信的一些问题
socket通信在使用时被封装很简单,像操作文件一样简单,正是因为简单里面好多细节需要深入研究一下. windows下通信有select和iocp方式,select是传统方式,在socket里使用re ...