【正则】

  正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。

  模式描述在搜索文本时要匹配的一个或多个字符串。

  常用字符:

 //正则表达式
//$ 匹配输入字符串结尾的位置
//* 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配“z”和“zoo”。* 等效于 {0,}
//+ 一次或多次匹配前面的字符或子表达式。例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配。+ 等效于 {1,}。
//? 零次或一次匹配前面的字符或子表达式。例如,“do(es)?”匹配“do”或“does”中的“do”。? 等效于 {0,1}。
//[xyz] 字符集。匹配包含的任一字符。例如,“[abc]”匹配“plain”中的“a”。
  正则表达式语法 链接:https://msdn.microsoft.com/zh-cn/library/ae5bf541(v=vs.80).aspx

【例题】

A+B Problem IV

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
 
描述
acmj最近发现在使用计算器计算高精度的大数加法时很不方便,于是他想着能不能写个程序把这个问题给解决了。
 
输入
包含多组测试数据
每组数据包含两个正数A,B(可能为小数且位数不大于400)
输出
每组输出数据占一行,输出A+B的结果,结果需要是最简的形式。
样例输入
1.9 0.1
0.1 0.9
1.23 2.1
3 4.0
样例输出
2
1
3.33
7
【代码】
  Java:
 import java.math.BigDecimal;
import java.util.Scanner; public class Bignumber {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while (cin.hasNext()) {
BigDecimal a = cin.nextBigDecimal();//移除组分隔符
BigDecimal b = cin.nextBigDecimal();
BigDecimal c = a.add(b);
System.out.println(sw(c.toString()));
}
}
static String sw(String s) {
if (s.indexOf(".") > 0) {
System.out.println("*-*-");
s = s.replaceAll("0+?$", "");
s = s.replaceAll("[.]$", "");
}
return s;
}
}

  C++:

 #include <stdio.h>
#include <string.h>
#define MAX 1000
char a[MAX],b[MAX],c[MAX];
int main()
{
int i,j,k,l,m,n,la,lb,mx;
char ch;
memset(a,'',sizeof(a));
memset(b,'',sizeof(b));
while(~scanf("%s%s",a,b))
{
la=strlen(a);
lb=strlen(b);
a[la]='';
b[lb]='';
i=;
while((a[i]-'.')&&i<la)
{
i++;
}
if(i==la)
a[la]='.';
j=;
while((b[j]-'.')&&j<lb)
{
j++;
}
if(j==lb)
b[lb]='.';
m=(la-i)>(lb-j)?(la-i):(lb-j);
if(i>=j)
{
for(l=mx=i+m,k=,j=i-j;l>=;l--)
{
if(a[l]=='.')
{
c[l]='.';
continue;
}
ch=(l-j)<?'':b[l-j];
c[l]=(a[l]-''+ch-''+k)%+'';
k=(a[l]-''+ch-''+k)/;
}
}
else
{
for(l=mx=j+m,k=,j=j-i;l>=;l--)
{
if(b[l]=='.')
{
c[l]='.';
continue;
}
ch=(l-j)<?'':a[l-j];
c[l]=(ch-''+b[l]-''+k)%+'';
k=(ch-''+b[l]-''+k)/;
}
}
if(k>)
printf("%d",k);
while(c[mx]=='')
mx--;
if(c[mx]=='.')
mx--;
for(i=;i<=mx;i++)
printf("%c",c[i]);
printf("\n");
memset(a,'',sizeof(a));
memset(b,'',sizeof(b));
}
}
//待研究、待看懂

【大数处理、正则表达式】NYOJ-513的更多相关文章

  1. BUAA_OO_博客作业四

    BUAA_OO_博客作业四 1 第四单元两次作业的架构设计 1.1 第13次作业 类图 ​ 作业要求:通过实现UmlInteraction这个官方提供的接口,来实现自己的UmlInteraction解 ...

  2. nyoj 28 大数阶乘

    题目链接:nyoj 28 就是个简单的高精度,只是一开始我打表超内存了,然后用了各种技巧硬是把内存缩到了题目要求以下(5w+kb),感觉挺爽的,代码如下: #include<cstdio> ...

  3. nyoj 1091 还是01背包(超大数dp)

    nyoj 1091 还是01背包 描述 有n个重量和价值分别为 wi 和 vi 的物品,从这些物品中挑选总重量不超过W的物品,求所有挑选方案中价值总和的最大值 1 <= n <=40 1 ...

  4. 大数阶乘 nyoj

    大数阶乘 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?   输入 输入一个整数 ...

  5. nyoj 28-大数阶乘 (大数模板)

    28-大数阶乘 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:19 submit:39 题目描述: 我们都知道如何计算一个数的阶乘,可是,如果这个数 ...

  6. NYOJ题目28大数阶乘

    -------------------------------------祭出BigInteger AC代码: import java.math.BigInteger; import java.uti ...

  7. nyoj 803 大数问题

    #include<stdio.h> #include<string.h> #define ll long long #define N 110000 int main() { ...

  8. nyoj 103-A+B Problem II (python 大数相加)

    103-A+B Problem II 内存限制:64MB 时间限制:3000ms 特判: No 通过数:10 提交数:45 难度:3 题目描述: I have a very simple proble ...

  9. PHP正则表达式详解(二)

    前言: 在本文中讲述了正则表达式中的组与向后引用,先前向后查看,条件测试,单词边界,选择符等表达式及例子,并分析了正则引擎在执行匹配时的内部机理. 本文是Jan Goyvaerts为RegexBudd ...

随机推荐

  1. 安卓 unit 测试与 instrument 测试的代码共享

    假如你有一款安卓应用,其包含一系列测试类,其中一部分是unit 测试(位于 src/test),其余为instrument 测试(位于 src/androidTest). 那么问题来了:你有一些想在所 ...

  2. Zabbix 集成 OneAlert 实现全方位告警

    1. 前言 告警将重要信息发送给运维「或者其他相关人」,及时发现并且处理问题.在所有开源监控软件里面,Zabbix 的告警方式无疑是最棒的.告警的方式各式各样,从 Email 告警到飞信.139/18 ...

  3. tornado解析http body的过程分析

    tornado解析http body的过程分析 在最近写的一个RESTful API Server过程中,发现tornaod对解析POST BODY的内容有限制. 而在以前用web.py则没有这个限制 ...

  4. hdu 1253 胜利大逃亡(广搜,队列,三维,简单)

    题目 原来光搜是用队列的,深搜才用栈,我好白痴啊,居然搞错了 三维的基础的广搜题 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #in ...

  5. POJ1276Cash Machine

    http://poj.org/problem?id=1276 题意 : 给你一个目标钱数,再给你钱币的种数和钱币的面值,让你用这些钱凑出不大于目标钱数的钱然后输出这个最接近且不大于目标钱数的钱. 思路 ...

  6. lintcode 中等题:N Queens II N皇后问题 II

    题目: N皇后问题 II 根据n皇后问题,现在返回n皇后不同的解决方案的数量而不是具体的放置布局. 样例 比如n=4,存在2种解决方案 解题: 和上一题差不多,这里只是求数量,这个题目定义全局变量,递 ...

  7. asp.net中当服务器出错时显示指定的错误页面

    http://blog.csdn.net/helloxiaoyu/article/details/2943537 此篇文章描述了当异常再ASP.NET中发生时怎样使用C#.NET代码去拦截和相应异常. ...

  8. Python中的SET集合操作

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...

  9. HDU5093——Battle ships(最大二分匹配)(2014上海邀请赛重现)

    Battle ships Problem DescriptionDear contestant, now you are an excellent navy commander, who is res ...

  10. ScrollView嵌套ListView嵌套GridView的上下拉以及加载更多

    ScrollView 效果 ScrollView 说明 一个ScrollView 嵌套ListView 嵌套GridView的上拉加载更多,下拉刷新的demo. 主要是重写了GridView和Lsit ...