题目链接:

http://acm.zzuli.edu.cn/problem.php?id=2599

  这个题表面上看起来很简单....但是如果直接写的话就算用long long也会有越界的情况(double即使不越界,也可能有精度损失)所以我们需要用到大整数加法

#include<set>
#include<map>
#include<stack>
#include<queue>
#include<cmath>
#include<cstdio>
#include<cctype>
#include<string>
#include<vector>
#include<climits>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define max(a, b) (a > b ? a : b)
#define min(a, b) (a < b ? a : b)
#define mst(a) memset(a, 0, sizeof(a))
#define _test printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n")
using namespace std;
typedef long long ll;
typedef pair<int, int> P;
const double eps = 1e-;
const int INF = 0x3f3f3f3f;
const ll ll_INF = ;
const int maxn = 1e3+;
char num1[maxn], num2[maxn], res[maxn];
void sum() { //大整数加法
mst(res);
int len1 = strlen(num1);
int len2 = strlen(num2);
reverse(num1, num1+len1); //反转第一个数
reverse(num2, num2+len2); //反转第二个数
int kase = ;
while(kase < len1 && kase < len2) { //重叠部分相加
res[kase+] = (res[kase] + num1[kase] + num2[kase] - ''*)/; //模拟进位相加
res[kase] = (res[kase] + (num1[kase] + num2[kase] - ''*))% + '';
++kase;
}
while(kase < len1) { //非重叠部分相加
res[kase+] = (res[kase] + num1[kase] - '')/;
res[kase] = (res[kase] + num1[kase] - '')% + '';
++kase;
}
while(kase < len2) { //同上
res[kase+] = (res[kase] + num2[kase] - '')/;
res[kase] = (res[kase] + num2[kase] - '')% + '';
++kase;
}
if (res[kase]) { //判断最后一次相加有没有进位
res[kase] += '';
res[++kase] = '\0';
}
else
res[kase] = '\0';
}
bool okk() { //判断回文
int len = strlen(res);
for (int i = ; i<len/; ++i)
if (res[i] != res[len-i-])
return false;
return true;
}
int main(void) {
while(~scanf("%[^\n]%*c", num1)) {
bool ok = false;
strcpy(num2, num1);
for (int i = ; i<; ++i) {
reverse(num2, num2+strlen(num2));
sum(); //将反转过后的数与原数字相加
if (okk()) { //判断是否满足回文
ok = true;
break;
}
strcpy(num1, res); //将相加后的结果复制给另外两个数字准备下次计算
strcpy(num2, res);
}
printf(ok ? "%s\n" : "NO\n", res);
}
return ;
}
 

zzulioj - 2599: 对称的数字的更多相关文章

  1. 246. Strobogrammatic Number 上下对称的数字

    [抄题]: A strobogrammatic number is a number that looks the same when rotated 180 degrees (looked at u ...

  2. Python正则式的基本用法

    Python正则式的基本用法 1.1基本规则 1.2重复 1.2.1最小匹配与精确匹配 1.3前向界定与后向界定 1.4组的基本知识 2.re模块的基本函数 2.1使用compile加速 2.2 ma ...

  3. 深入揭秘HTTPS安全问题&连接建立全过程

    作者:[已重置]链接:https://zhuanlan.zhihu.com/p/22142170来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作为开发者必备的网络安全 ...

  4. Python正则表达式Regular Expression基本用法

    资料来源:http://blog.csdn.net/whycadi/article/details/2011046   直接从网上资料转载过来,作为自己的参考.这个写的很清楚.先拿来看看. 1.正则表 ...

  5. PID控制器开发笔记之十二:模糊PID控制器的实现

    在现实控制中,被控系统并非是线性时不变的,往往需要动态调整PID的参数,而模糊控制正好能够满足这一需求,所以在接下来的这一节我们将讨论模糊PID控制器的相关问题.模糊PID控制器是将模糊算法与PID控 ...

  6. [CQOI2017]小Q的表格(数论+分块)

    题目描述 小Q是个程序员. 作为一个年轻的程序员,小Q总是被老C欺负,老C经常把一些麻烦的任务交给小Q来处理.每当小Q不知道如何解决时,就只好向你求助. 为了完成任务,小Q需要列一个表格,表格有无穷多 ...

  7. Python中的正则表达式(re)

    import re re.match #从开始位置开始匹配,如果开头没有则无 re.search #搜索整个字符串 re.findall #搜索整个字符串,返回一个list 举例: r(raw)用在p ...

  8. CodeForces 909F

    题意略. 思路: 第一问: 递归地来写,找对称,发现关于(1<<y) - 1和(1<<y)对称的数字做 & 结果为0. 第二问: 6,7特殊考虑.循环左移(1<& ...

  9. 安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS【下】

    1.  HTTPS 1.1. 什么是HTTPS HTTPS(HypertextTransfer Protocol Secure)即安全的HTTP.HTTPS的安全基础是安全套接层(Secure Soc ...

随机推荐

  1. mac下mysql安装、卸载、基本操作

    2018-06-08 10:57:26 张广森 阅读数 6584更多 分类专栏: mac mysql   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本 ...

  2. 云服务器、VPS、虚拟主机三者之间的区别?

    更多精彩内容欢迎访问我的个人博客皮皮家园:https://www.zh66.club期待您的光临哦!我是皮皮猪,感谢各位光临,能为您排忧解难小站深感荣幸!祝您生活愉快! 什么是虚拟主机? 同云主机不一 ...

  3. PHP命令执行php文件需要注意的问题

    PHP命令执行php文件需要注意的问题 require_once '/data/fewfawef/wwwroot/Public/queenchuli/common/mysql.php';里面必须要写绝 ...

  4. Ansible17:Playbook之tags

    目录 简介 为task打tag 使用tag 执行指定tag的task 排除指定tag的task 查看playbook中的所有tag 打tag的几种方式 ansible内置tag 简介 在大型项目当中, ...

  5. Java并发之原子性,可见性,有序性

    原子性 ​原子性指的是一个或者多个操作在 CPU 执行的过程中不被中断的特性 在多线程情况下,线程会被操作系统调度进行任务切换,占有CPU时间片段的就执行,否则就阻塞 java中对基础类型的变量赋值是 ...

  6. MySQL常用系统表汇总

    在这篇文章中: MySQL5.7 默认模式 Information_schema performance_schema mysql sys MYSQL SHOW 命令 致谢 概述 本篇文章虽大部分内容 ...

  7. Peewee之playhouse中的数据库连接池

    参见 http://note.youdao.com/noteshare?id=104255d91b5a00d716a713ae36e911fd 目前在学习Python库的源码,这是第二篇,比较简单的功 ...

  8. windows下PyTorch安装之路记录

    最近两天被windows下pytorch的安装给搞得很烦了,不过在今天终于安装成功了,如下图所示 下面详细说下此次安装的详细记录吧.我的电脑环境是Windows10+cuda9.0+cudnn7.1. ...

  9. net core 记录自定义端口多个方式

    1.直接修改 . 2.代码定义 public class Program { public static void Main(string[] args) { CreateWebHostBuilder ...

  10. 阿里OSS前端直传

    第一次写博客,如有错误请多多指教. 先上代码吧: ossUpload = function (file, fun, funParameter) { //第一此请求后台服务器获取认证请求 $.ajax( ...