今天做了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问题+出现次数最多的整数的更多相关文章

  1. Java实现 蓝桥杯 算法训练 2的次幂表示

    算法训练 2的次幂表示 时间限制:1.0s 内存限制:512.0MB 问题描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001. 将这种2进制表示写成2的次幂的和的形式, ...

  2. Java实现 蓝桥杯 算法训练 出现次数最多的整数

    算法训练 出现次数最多的整数 时间限制:1.0s 内存限制:512.0MB 提交此题 问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会 ...

  3. 蓝桥杯算法训练<一>

    一.图形显示 此题虽然简单,但是需啊哟注意的是,每个“*”后边有一个空格] 问题描述 编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数): * * * * * * * * ...

  4. Java实现 蓝桥杯 算法训练 猴子吃包子(暴力)

    试题 算法训练 猴子吃包子 问题描述 从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同:肉包每秒钟吃x个:韭菜包每秒钟吃y个:没有馅的包子每秒钟吃z个:现在有x1个肉 ...

  5. Java实现蓝桥杯 算法训练 大等于n的最小完全平方数

    试题 算法训练 大等于n的最小完全平方数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输出大等于n的最小的完全平方数. 若一个数能表示成某个自然数的平方的形式,则称这个数为完全平 ...

  6. 蓝桥杯算法训练 java算法 表达式求值

    问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值.其中除表示整除. 输入格式 输入一行,包含一个表达式. 输出格式 输出这个表达式的值. 样例输入 1-2+3*(4-5) 样例输出 - ...

  7. java实现 蓝桥杯 算法训练 Password Suspects

    问题描述 在年轻的时候,我们故事中的英雄--国王 Copa--他的私人数据并不是完全安全地隐蔽.对他来说是,这不可接受的.因此,他发明了一种密码,好记又难以破解.后来,他才知道这种密码是一个长度为奇数 ...

  8. 蓝桥杯 算法训练 Torry的困惑(基本型)(水题,筛法求素数)

    算法训练 Torry的困惑(基本型) 时间限制:1.0s   内存限制:512.0MB      问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7……这样的数叫做质数.Torry突 ...

  9. 蓝桥杯 算法训练 区间k大数查询(水题)

    算法训练 区间k大数查询 时间限制:1.0s   内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. ...

随机推荐

  1. php根据经纬度获取城市名

    /*php根据经纬度获取城市名*/ function get_my_addr_infos(){ $ch = curl_init(); $timeout = 5; $lat = $list['info' ...

  2. Kafka 客户端实现逻辑分析

    这里主要分析kafka 客户端实现 (代码分析以perl kafka实现为准) kafka客户端分为生产者和消费者,生产者发送消息,消费者获取消息. 在kafka协议里客户端通信中用到的最多的四个协议 ...

  3. 跨域,json与jsonp格式

    好久都没有写随笔了,最近大家都忙着考试要放假了,我也要忙一忙喽.....不过再忙我还是来啦 简单的说,json是一种轻量级的数据交换格式.平时我们使用ajax等使用的一种数据形式,那么今天就说说jso ...

  4. tomcat启动不了,内存溢出

    今天下午不知道做了什么,然后tomcat启动了10分钟还启动不了.然后看控制台报错信息,说是内存溢出.然后就各种百度,终于解决了.在这里记录提示自己,避免这种问题再次出现还要浪费时间去找方法解决. 最 ...

  5. c++数组易错点总结

    c++数组 1.只有在定义数组是才能使用初始化,此后就不能使用了,也不能将一个数组赋给另一个数组 int cards[4] = { 3 , 6 , 8 , 10}; //ok int hands[4] ...

  6. Hibernate框架 初识 ORM概念 搭建Hibernate环境 Hibernate Api

    ORM概念 在学习 Hibernate 之前,我们先来了解ORM   对象关系映射 O, Object  对象 R,Realtion 关系  (关系型数据库: MySQL, Oracle…) M,Ma ...

  7. 工厂设计模式 Factory

    Factory 主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类. 例如:汽车销售商场 该模式将创建对象的过程放在了一个静态方法中来实现.在实际编程中,如果需要大量的创建对象,该模 ...

  8. CSS 选择器优先级问题

    <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...

  9. Maven入门2-pom.xml文件与settings.xml文件

    Maven入门2-pom.xml文件与settings.xml文件 本文内容来源于官网文档部分章节,settings.xml文件:参考http://maven.apache.org/settings. ...

  10. 次小生成树学习+例题 poj 1679 The Unique MST

    次小生成树学习: 顾名思义,次小生成树,就是将图的所有生成树排序后,权值第二小的生成树. 次小生成树的朴素求法是很好想的,即首先求出最小生成树,之后枚举最小生成树中的所有边,将当前枚举的边" ...