PAT 1024 Palindromic Number
2024-08-27 04:42:56
#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <algorithm> using namespace std; void print(vector<char> &num) {
int len = num.size();
bool value_begin = false;
for (int i=; i<len; i++) {
if (!value_begin && num[i] == ) continue; // skip leading zeros;
value_begin = true;
printf("%d", num[i]);
}
if (!value_begin) { // totally zero
printf("");
}
} vector<char> num2vec(long long num) {
vector<char> ret; while (num) {
ret.push_back(num % );
num /= ;
}
reverse(ret.begin(), ret.end());
return ret;
} vector<char> add(vector<char> &a, vector<char> &b) {
vector<char> ret;
int alen = a.size();
int blen = b.size();
int carry= ;
while (alen > && blen > ) {
int d = carry + a[--alen] + b[--blen];
carry = d / ;
d = d % ;
ret.push_back(d);
} while (alen > ) {
int d = carry + a[--alen];
carry = d / ;
d = d % ;
ret.push_back(d);
}
while (blen > ) {
int d = carry + b[--blen];
carry = d / ;
d = d % ;
ret.push_back(d);
}
if (carry) ret.push_back();
reverse(ret.begin(), ret.end());
return ret;
} vector<char> pal(vector<char> &num) {
vector<char> ret = num;
reverse(ret.begin(), ret.end());
return ret;
} bool is_pal(vector<char> &num) {
int len = num.size();
int p = , q = len - ;
while (p < q) {
if (num[p] != num[q]) break;
++p, --q;
}
return p >= q;
} int main() {
long long n = , k = , i = ;
scanf("%ld%ld", &n, &k);
vector<char> num = num2vec(n);
for (i=; i<k; i++) {
if (is_pal(num)) {
break;
}
vector<char> pnum = pal(num);
vector<char> tnum = add(pnum, num);
swap(num, tnum);
}
print(num);
printf("\n%d", i);
return ;
}
要注意数值范围,非常喜欢在这种地方搞你一下
最新文章
- [VB] if 判断语句 和 If、IIf函数的比较
- hibernate(八) Hibernate检索策略(类级别,关联级别,批量检索)详解
- MySQL数据类型——数值类型
- win10的安装与下载
- C# 返回Foreach集合
- VS2010中将当前选定项目做为启动项
- Solaris从安装光盘安装软件
- Java Base64 加密解密
- sql 将某一列的值拼接成字符串
- android 开发自建wifi热点的默认ip
- linux上传下载
- jsp请求由servlet响应的方式
- 另一份Java应用调优指南之-前菜
- jquery href属性和click事件冲突
- 4--OC --合成存取器方法
- PAT (Advanced Level) 1025. PAT Ranking (25)
- 跟着鬼哥学so改动,二,进行篇
- BZOJ_5301_[Cqoi2018]异或序列&;&;CF617E_莫队
- vue学习笔记4
- mongodb数据库添加权限及简单数据库命令操作笔记