今天做了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. 在win7下如何设置计划任务每一分钟执行一次

  2. mysql 列类型以及属性特点

    整形列: 一个字节有8个位,例如:int 类型的列存入数字1,00000000 00000000 00000000 00000001它就在最低位置上存入一个1,由此可见是极大的浪费资源,所以在建立列类 ...

  3. [leetcode-495-Teemo Attacking]

    In LLP world, there is a hero called Teemo and his attacking can make his enemy Ashe be in poisoned ...

  4. redis可视化工具redisClient

    下载连接:百度网盘 直接解压就可以用了

  5. Vim正则通配符使用心得

    目的 实现替换 c f[i][j][k] -> f[k][i][j] f[i + 1][j][k] -> f[k][i + 1][j] f[i + 1][j + NY][k] -> ...

  6. Echarts笔记——使用AJAX填充数据

    最近把编辑器从Sublime换成HBuilder,感觉好用很多啊,可能自己插件没弄好吧.不不过HBuilder的启动速度确实慢,放机械盘启动要7-13秒,还好有固态. 因为项目需要,这周上手了百度的E ...

  7. WPF:动态显示或隐藏Listview的某一列

    这几天做项目,需要做个listview满足能够动态显示或隐藏某些列,由于自己是菜鸟水平,查了两天资料也没有想出解决办法.就在我山穷水尽的时候看到了Mgen的一篇博客,给了我很大启发,所以我也决定把自己 ...

  8. 基于Spring MVC 实现拦截器

    Spring MVC 拦截器 一,具体内容: 在所有的开发之中拦截器属于一个重要的组件,可以说几乎所有的项目都会提供的概念应用,不管是Spring MVC,还是Struts 2.x都是提供有拦截器的, ...

  9. Perl根据日期分割数据文件

    Perl的优势:比C好写,比Shell高效,Linux普遍支持. #!/usr/bin/perl -w # auth: lichmama@cnblogs.com # what: split data_ ...

  10. vijos1011题解

    题目:      顺治喜欢滑雪,这并不奇怪,因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待太监们来载你.顺治想知道载一个区域中最长的滑坡.区域 ...