Java实现 蓝桥杯VIP 算法训练 二元函数
问题描述
令二元函数f(x,y)=ax+by,a和b为整数,求一个表达式S的值。
只有满足以下要求的表达式才是合法的:
1.任意整数x是一个合法的表达式;
2.如果A和B都是合法的表达式,则f(A,B)也是一个合法的表达式。
输入格式
第一行两个数a和b;
第二行一个字符串S表示要求的表达式。
输出格式
一行一个数表示表达式S的值。
样例输入
1 2
f(1,f(1,-1))
样例输出
-1
数据规模和约定
S的长度不超过50,运算过程中所有变量不会超出int的范围。
PS:
测试数据搞心态???
package 第十次模拟;
import java.util.Scanner;
import java.util.Stack;
public class 二元函数 {
public static void main(String[] args) {
Stack<Integer> num = new Stack<Integer>();
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
sc.nextLine(); //用于消除第一个回车
String str = sc.nextLine(); //输入字符串
try {
if(Integer.valueOf(str)>0){
System.out.println(str);
return;
}
} catch (Exception e) {
// TODO: handle exception
}
char[] s = str.toCharArray(); //转换为数组操作
for(int i =0 ;i < s.length;i++){
if(s[i] == '-'){ //如果是 为负数
i++ ; //使索引指向负号下面一个元素
i = getNumber(num, s, i,false);
}else if(Character.isDigit(s[i])){ //
i = getNumber(num, s, i,true);
}
if(s[i] == ')'){
int x = num.pop();
int y = num.pop();
//x应该是在算式中是靠后的元素,所以应该互换位置
num.push(count(a,b,y,x)) ;
}
}
System.out.println(num.pop());
}
//计算一个f()的值 。
public static int count(int a , int b , int x , int y){
return a*x+b*y;
}
//获取一个完整的数值。 返回一个索引
public static int getNumber(Stack<Integer> stack,char[] s ,int i,Boolean pos){
int number = 0 ;
for(;s[i] != ','&&s[i]!=')';i++){
number = number * 10 +s[i]-'0';
}
if(!pos){
stack.push(-number); //对有符号的进行取反处理
} else
//入栈操作
stack.push(number);
if(s[i] == ' '){
return i ;
}
return i ;
}
}
Java实现 蓝桥杯VIP 算法训练 二元函数的更多相关文章
- Java实现蓝桥杯VIP算法训练 二元函数
试题 算法训练 二元函数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 令二元函数f(x,y)=ax+by,a和b为整数,求一个表达式S的值. 只有满足以下要求的表达式才是合法的: ...
- Java实现 蓝桥杯VIP 算法训练 sign函数
试题 算法训练 sign函数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定实数x,输出sign(x)的值. sign(x)是符号函数,如果x>0,则返回1:如果x=0, ...
- Java实现蓝桥杯VIP 算法训练 sign函数
问题描述 给定实数x,输出sign(x)的值. sign(x)是符号函数,如果x>0,则返回1:如果x=0,则返回0:如果x<0,则返回-1. 输入格式 一行一个实数x. 输出格式 一行一 ...
- Java实现蓝桥杯VIP 算法训练 找公倍数
问题描述 这里写问题描述. 打印出1-1000所有11和17的公倍数. 样例输入 一个满足题目要求的输入范例. 样例输出 与上面的样例输入对应的输出. 这道题其实没有什么可写的,但是为了让读者更方便的 ...
- Java实现 蓝桥杯VIP 算法训练 连通分块(并查集)
试题 算法训练 连通分块 资源限制 时间限制:200ms 内存限制:8.0MB 问题描述 连通分块 输入格式 输入的第一行包含两个整数n, m n代表图中的点的个数,m代表边的个数 接下来m行,每行2 ...
- Java实现 蓝桥杯VIP 算法训练 无权最长链
试题 算法训练 无权最长链 问题描述 给定一个n节点m边的无圈且连通的图,求直径 输入格式 第一行两个数字n,m 接下来m行每行两个数字x,y,代表x,y之间有一条边 输出格式 要求用户的输出满足的格 ...
- Java实现 蓝桥杯VIP 算法训练 星际交流
算法训练 星际交流 时间限制:1.0s 内存限制:256.0MB 问题描述 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法 ...
- Java实现 蓝桥杯VIP 算法训练 Car的旅行路线
大家可以看一下这个,蓝桥杯官网的这道题是有问题的 Car的旅行路线 算法训练 Car的旅行路线 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 查看参考代码 问题描述 又到暑假 ...
- Java实现 蓝桥杯VIP 算法训练 最大质因数(暴力)
试题 算法训练 最大质因数 问题描述 给出N个数字,求出有最大的最大质因数的那个数 输入格式 第一行:一个整数N. 接下来的N行,每行一个整数A_i,表示给出的那N个数字. 输出格式 第一行:一个整数 ...
随机推荐
- Docker知识点整理
目录 1. Docker简介 1.1 Docker是什么 1.2 在隔离的容器中运行软件 1.3 分发容器 2. Docker镜像 2.1 Docker镜像简介 2.2 Docker镜像常见操作 2. ...
- java -> final与static 关键字
final的概念 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后,就可以对 ...
- python中minepy包的下载
minepy包的下载 今天在做机器学习的时候,需要使用到互信息的有关内容,而python包下正好有处理互信息的包,想直接下一个,没想到遇到了不少问题: 基本指令很简单了: pip install mi ...
- React实践相关
语法高亮: sublime ctrl+shift+P 安装babel ,在view-syntax-open all width current extension as...-babel-js(bab ...
- Nodejs模块使用
一.fs模块 (1)查看文件状态 fs.stat(path, callback) / statSync(path) (2)创建目录 fs.mkdir(path, callback) / mkdirSy ...
- scrapy请求发送详解
scrapy自动发送请求 对start_urls列表中存储的起始url进行过请求的发送并没有通过手动实现,但是在parse函数中还是获取到了响应数据,这是因为爬虫文件中的爬虫类继承到了Spider父类 ...
- day05:数组与字典常识(20170217)
#1:数组功能的使用:print ("a4A".isdecimal()) #print ("18".isdigit()) #判断是否是数字print (&quo ...
- 【python 爬虫】fake-useragent Maximum amount of retries reached解决方案
前言 在用fake-useragent的时候发生报错,fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reach ...
- 远程快速安装mysql
远程服务器安装mysql数据库 https://www.cnblogs.com/renjidong/p/7047396.html 1.新开的云服务器,需要检测系统是否自带安装mysql # yum l ...
- Unity读取StreamingAssets路径下的文件
/// <summary> ///读取StreamingAssets中的文件 /// </summary> /// <param name="path" ...