蓝桥-ALGO-14-回文数
来源:互联网 发布:二手书交易网站 知乎 编辑:程序博客网 时间:2024/06/04 17:45
ACM模版
描述
题解
模拟题,直接模拟这个过程不断判定即可。需要注意的是最后位数可能比较大,因为每一次相加都可以粗略看做
代码
#include <iostream>#include <cstring>using namespace std;const int MAXN = 100;const int MAXSTEPS = 30;int N, len;char s[MAXN];int num1[MAXN];int num2[MAXN];int num3[MAXN];void add(){ num3[len] = 0; for (int i = len; i > 0; i--) { num3[i - 1] = (num1[i] + num2[i] + num3[i]) / N; num3[i] = (num1[i] + num2[i] + num3[i]) % N; } if (num3[0]) { len++; for (int i = len; i > 0; i--) { num3[i] = num3[i - 1]; } num3[0] = 0; }}bool charge(){ for (int i = 1, j = len; i < j; i++, j--) { if (num1[i] != num1[j]) { return 0; } } return 1;}void getNum2(){ for (int i = 1; i <= len; i++) { num2[i] = num1[len - i + 1]; }}int main(int argc, const char * argv[]){ scanf("%d%s", &N, s + 1); len = (int)strlen(s + 1); for (int i = 1; i <= len; i++) { if (s[i] >= '0' && s[i] <= '9') { num1[i] = s[i] - '0'; } else { num1[i] = s[i] - 'A' + 10; } } int steps = 0; while (!charge() && steps <= MAXSTEPS) { steps++; getNum2(); add(); memcpy(num1, num3, sizeof(num3)); } if (steps <= MAXSTEPS) { cout << "STEP=" << steps << '\n'; } else { cout << "Impossible!\n"; } return 0;}
阅读全文
0 0
- 蓝桥-ALGO-14-回文数
- 蓝桥 回文数
- 蓝桥-ALGO-19-方格取数
- 蓝桥-ALGO-22-数的划分
- 蓝桥题目:特殊回文数
- 蓝桥-ALGO-26-麦森数
- 蓝桥-ALGO-33-数列
- 蓝桥-ALGO-40-会议中心
- 蓝桥 ALGO-2 最大最小公倍数
- 蓝桥-ALGO-9-摆动序列
- 蓝桥-ALGO-10-集合运算
- 蓝桥-ALGO-12-幂方分解
- 蓝桥-ALGO-13-拦截导弹
- 蓝桥-ALGO-16-进制转换
- 蓝桥-ALGO-17-乘积最大
- 蓝桥-ALGO-18-单词接龙
- 蓝桥-ALGO-20-求先序排列
- 蓝桥-ALGO-24-统计单词个数
- 数据结构动态申请二维数组
- 向下兼容、向上兼容、向前兼容、向后兼容
- P1018 乘积最大
- python 基础 —— __import__() 函数
- git pull报错Pulling is not possible because you have unmerged files
- 蓝桥-ALGO-14-回文数
- 简述ImageLoader显示图片的流程
- java后台创建压缩包&使用浏览器下载文件(批量下载实现)
- 时间空间复杂度(二分查找和斐波那契数列)
- java中自动往邮箱里发送网页时的要求
- spring boot 集成druid,监控配置
- 套接字编程(一)----基于TCP协议
- 二级域名配置(万网 + tomcat8.5) 解析到子目录
- python基础知识