和1024一样都是大数据的题,因为位数最多要20位,long long最多19位
给一个num,求sum=num+num
问sum包含的数字,是否是num的一个排列,即数字都一样,只是顺序不同罢了。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>
#include <string>
using namespace std;
const int maxn=; struct Bign{
int len,num[maxn]; // 这里num[0]是最低位,num[len-1]是最高位
Bign(){
memset(num,,sizeof(num));
len=;
}
Bign(int val){
*this=val;
}
Bign(const char*val){
*this=val;
}
//以int型赋值
Bign operator=(int val){
char s[maxn];
sprintf(s,"%d",val);
*this=s; //字符串赋值
return *this;
}
//以字符串赋值
Bign operator=(const char*val){
len=strlen(val);
for(int i=;i<len;i++){
num[i]=val[len--i]-'';
}
return *this;
}
//去掉前导0
void clean(){
while(len>&&!num[len-]){
len--;
}
}
//转化为字符串
string tostr(){
string res="";
clean();
for(int i=;i<len;i++){
res=(char)(num[i]+'')+res;
}
if(res=="")
return "";
return res;
}
//重载+
Bign operator+(const Bign& b)const{
Bign c;
c.len=;
for(int i=,g=;g||i<max(len,b.len);i++){
int x=g;
if(i<len)
x+=num[i];
if(i<b.len)
x+=b.num[i];
c.num[c.len++]=x%;
g=x/;
}
return c;
}
//取翻转后的数
Bign toReverse(){
clean();
Bign c;
c.len=len;
for(int i=;i<len;i++){
c.num[i]=num[len--i];
}
return c;
} };
int main()
{
char str[];
scanf("%s",str);
Bign num=str;
Bign sum=num+num;
int vis1[],vis2[];
memset(vis1,,sizeof(vis1));
memset(vis2,,sizeof(vis2));
for(int i=;i<num.len;i++){
vis1[num.num[i]]=;
}
for(int i=;i<sum.len;i++){
vis2[sum.num[i]]=;
}
bool flag=true;
for(int i=;i<;i++){
if(vis1[i]!=vis2[i]){
flag=false;
}
}
if(flag){
printf("Yes\n");
}
else{
printf("No\n");
}
string s=sum.tostr();
cout<<s<<endl;
return ;
}

PAT甲题题解-1023. Have Fun with Numbers (20)-大数加法的更多相关文章

  1. PAT甲题题解-1058. A+B in Hogwarts (20)-大水题

    无语,这种水题还出,浪费时间,但又不得不A... #include <iostream> #include <cstdio> #include <algorithm> ...

  2. PAT甲题题解-1031. Hello World for U (20)-字符串处理,水

    #include <iostream> #include <cstdio> #include <algorithm> #include <string.h&g ...

  3. PAT甲题题解-1104. Sum of Number Segments (20)-(水题)

    #include <iostream> #include <cstdio> #include <algorithm> #include <string.h&g ...

  4. PAT (Advanced Level) Practice 1023 Have Fun with Numbers (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1023 Have Fun with Numbers (20 分) 凌宸1642 题目描述: Notice that the number ...

  5. PAT甲题题解-1068. Find More Coins (30)-dp,01背包

    一开始没多想,虽然注意到数据N<=10^4的范围,想PAT的应该不会超时吧,就理所当然地用dfs做了,结果最后一组真的超时了.剪枝啥的还是过不了,就意识到肯定不是用dfs做了.直到看到别人说用0 ...

  6. PAT甲题题解-1008. Elevator (20)-大么个大水题,这也太小瞧我们做题者的智商了

    如题... #include <iostream> #include <cstdio> #include <algorithm> #include <cstr ...

  7. PAT甲题题解-1010. Radix (25)-二分搜索

    题意:给出n1和n2,以及其中一个数的进制,问另一个数是多少进制的情况下,才会是两个数相等.不存在的话,则输出Impossible 这题思路很简单,但是要考虑的比较多,在简单题里面算是比较好的. 有两 ...

  8. PAT甲题题解-1011. World Cup Betting (20)-误导人的水题。。。

    题目不严谨啊啊啊啊式子算出来结果是37.975样例输出的是37.98我以为是四舍五入的啊啊啊,所以最后输出的是sum+0.005结果告诉我全部错误啊结果直接保留两位小数就可以了啊啊啊啊 水题也不要这么 ...

  9. PAT甲题题解-1012. The Best Rank (25)-排序水题

    排序,水题因为最后如果一个学生最好的排名有一样的,输出的课程有个优先级A>C>M>E那么按这个优先级顺序进行排序每次排序前先求当前课程的排名然后再与目前最好的排名比较.更新 至于查询 ...

随机推荐

  1. iptables实战演练

    iptables禁止 ip 10.10.10.1 访问本地80端口: iptables -t filter -I INPUT -s 10.10.10.1 -p tcp –dport 80 -j DRO ...

  2. MySQL索引原理以及类型

    1.什么是索引 索引是在MySQL的存储引擎上,对其表中的某个列或多列通过一些算法实现可快速查询出结果的一种方法. 2.为什么要有索引 就像一本书要有目录一样,我们可快速通过目录来查找对应的章节得出结 ...

  3. 【CSS】Sass理解

    原文在 https://github.com/zhongxia245/blog , 欢迎 star! Sass理解 时间:2016-09-24 22:56:12 作者:zhongxia 这里就不讲解S ...

  4. BZOJ 1113 海报 单调栈

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1113 题目大意: N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. ...

  5. BZOJ2095:[POI2010]Bridges(最大流,欧拉图)

    Description YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个小岛可以到另外任意一个小岛.现在YYD想骑单车从小岛1 ...

  6. Node.js实战(二)之HelloWorld示例

    经过前面的Node.js实战(一)之概述 想必你应该对Node.js的概念.应用场景.优缺点等有个大致的了解,同时你本地Windows或者Linux上已经准备好了Node.js环境. 下面我们来进入每 ...

  7. tiff和geotiff格式分析

    1. tiff 文件的基本格式 TIFF(Tag Image File Format) 图像文件说明: TIFF 文件是由许多的标签 (tag) 组成 , 在 Adobe 的有关 tiff6.0 的说 ...

  8. 地球椭球体(Ellipsoid)、大地基准面(Datum)及地图投影(Projection)三者的基本概念

    地球椭球体(Ellipsoid) 众所周知我们的地球表面是一个凸凹不平的表面,而对于地球测量而言,地表是一个无法用数学公式表达的曲面,这样的曲面不能作为测量和制图的基准面.假想一个扁率极小的椭圆,绕大 ...

  9. OpenCV——膨胀与腐蚀

  10. $Simpson$积分入门

    \(\rm{0x01}\) 前言 首先阐明一点,自适应辛普森算法(\(\rm{Adaptive ~Simpson's~ rule}\) )是一类近似算法(\(\rm{Approximation ~al ...