【大数处理、正则表达式】NYOJ-513
【正则】
正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。
模式描述在搜索文本时要匹配的一个或多个字符串。
常用字符:
//正则表达式
//$ 匹配输入字符串结尾的位置
//* 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配“z”和“zoo”。* 等效于 {0,}
//+ 一次或多次匹配前面的字符或子表达式。例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配。+ 等效于 {1,}。
//? 零次或一次匹配前面的字符或子表达式。例如,“do(es)?”匹配“do”或“does”中的“do”。? 等效于 {0,1}。
//[xyz] 字符集。匹配包含的任一字符。例如,“[abc]”匹配“plain”中的“a”。
【例题】
A+B Problem IV
- 描述
- 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的更多相关文章
- BUAA_OO_博客作业四
BUAA_OO_博客作业四 1 第四单元两次作业的架构设计 1.1 第13次作业 类图 作业要求:通过实现UmlInteraction这个官方提供的接口,来实现自己的UmlInteraction解 ...
- nyoj 28 大数阶乘
题目链接:nyoj 28 就是个简单的高精度,只是一开始我打表超内存了,然后用了各种技巧硬是把内存缩到了题目要求以下(5w+kb),感觉挺爽的,代码如下: #include<cstdio> ...
- nyoj 1091 还是01背包(超大数dp)
nyoj 1091 还是01背包 描述 有n个重量和价值分别为 wi 和 vi 的物品,从这些物品中挑选总重量不超过W的物品,求所有挑选方案中价值总和的最大值 1 <= n <=40 1 ...
- 大数阶乘 nyoj
大数阶乘 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它? 输入 输入一个整数 ...
- nyoj 28-大数阶乘 (大数模板)
28-大数阶乘 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:19 submit:39 题目描述: 我们都知道如何计算一个数的阶乘,可是,如果这个数 ...
- NYOJ题目28大数阶乘
-------------------------------------祭出BigInteger AC代码: import java.math.BigInteger; import java.uti ...
- nyoj 803 大数问题
#include<stdio.h> #include<string.h> #define ll long long #define N 110000 int main() { ...
- nyoj 103-A+B Problem II (python 大数相加)
103-A+B Problem II 内存限制:64MB 时间限制:3000ms 特判: No 通过数:10 提交数:45 难度:3 题目描述: I have a very simple proble ...
- PHP正则表达式详解(二)
前言: 在本文中讲述了正则表达式中的组与向后引用,先前向后查看,条件测试,单词边界,选择符等表达式及例子,并分析了正则引擎在执行匹配时的内部机理. 本文是Jan Goyvaerts为RegexBudd ...
随机推荐
- PHP对XML文件操作类讲解
<?phpclass XML{ private $dom; function __construct () { $this->dom = new D ...
- android2.3 -添加自定义按键:作唤醒功能 .
最近需要做个唤醒功能,当按键的时候android系统唤醒并点亮屏,在长按键中,系统不能在进入睡眠. 驱动方面: 1:在平台设备文件中添加 一个按键,定义为唤醒源! \arch\arm\mach-s5p ...
- POJ2004 Mix and build Trie树? dp?
学习Trie树中,所以上网搜一下Trie树的题,找到这个,人家写着是简单dp,那我就想着能学习到什么Trie树上的dp,但最后发现根本好像跟Trie树没有什么联系嘛... 题意就是给你很多个字符串(长 ...
- DIV+CSS列表式布局(同意图片的应用)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 1009 FatMouse' Trade
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- Android中XML格式数据的简单使用
源码: package com.wangzhu.demo; import java.io.IOException; import java.io.StringWriter; import javax. ...
- 解决Eclipse10配置Pydev不成功的问题
本人在线配置还在本地配置后 重启Eclipse,Windows-Preferences中并无Python选项,新建项目也无Python可选 这个尝试了好多种方法,重新安装Eclipse10,重新安装j ...
- TCL语言笔记:TCL过程控制练习
1.青蛙爬井 for {set day 1;set cur 7} {$cur<77} {incr cur 2 ;incr day } { } puts $day 2.求1加到100 proc g ...
- 输出进程相关联的环境变量信息(使用GetEnvironmentStrings取得信息,然后使用StringCchCopyN和StringCchPrintf保证字符串不会越界)
void DumpEnvironmentStrings() { #define MAX_ENVIRONMENT_NAME_LENGTH (128) #define MAX_ENVIRONMEN ...
- 其实 Dropbox 的缺点也很明显,速度慢,空间小(我对国内的网盘的建议)
作者:王成链接:http://www.zhihu.com/question/20237962/answer/15146386来源:知乎著作权归作者所有,转载请联系作者获得授权. 国内的云存储服务基本上 ...