今天做了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. PGI Compiler for OpenACC Output Syntax Highlighting

    PGI Compiler for OpenACC Output Syntax Highlighting When use the PGI compiler to compile codes with ...

  2. 推荐一个基于Vue2.0的的一款移动端开发的UI框架,特别好用。。。

    一丶YDUI 一只注重审美,且性能高效的移动端&微信UI. 下面为地址自己研究去吧! 我的项目正在用,以前用的Mint-ui但是现在感觉还是这个好一点,官方给出的解释很清楚,很实用. 官方地址 ...

  3. Mongodb 参数说明及常见错误处理

       在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录:cd /usr/local 3 在当前目录下 ...

  4. Java添加JDBC

    添加JDBC 1.SQL Server SQL Server2005 下载 sqljdbc_4.0 https://www.microsoft.com/en-us/download/details.a ...

  5. c# 测试通过

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data; using S ...

  6. CentOS 下搭建FTP服务器

    vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个.本文介绍了在CentOS 6 4下安装vsftpd.配置虚拟用户登录FTP的过程.正 vsftpd是Linux下比较著名 ...

  7. Linux配置LNMP环境(一)配置Nginx

    注意:配置版本nginx-1.12.0,使用虚拟机安装linux.教程中的下载地址可能有变化.注意(在您看本教程之前首先需要对linux的基本操作熟悉) 1.  先cd到/usr/local/src ...

  8. php之试触法----error--关键字的误用

    实际开发中,在不同网页的输出中,常常有许多公共的代码或者变量需要使用,于是定义了以下类来缩减代码量 如下代码所示: <?php class universalClass { function w ...

  9. springmvc 前端 发ajax请求的几种方式

    一.传json单值或对象 1.前端 var data = {'id':id,'name':name}; $.ajax({ type:"POST", url:"user/s ...

  10. 【Vue】详解Vue组件系统

    Vue渲染的两大基础方式 new 一个Vue的实例 这个我们一般会使用在挂载根节点这一初始化操作上: new Vue({ el: '#app' }) 注册组件并使用—— 全局注册 通过Vue.comp ...