wikioi 1045 回文数
来源:互联网 发布:java写数据到txt 编辑:程序博客网 时间:2024/05/02 01:53
http://wikioi.com/problem/1045/
其实就是道模拟题,按题意来就行了,想想哪些地方可以优化
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;char a[1000];int s1[1000];int s2[1000];int s[1000];int m;int step=0;int l;void fz(){ for(int i=1;i<=l;i++) { s2[l-i+1]=s1[i]; }//倒着储存}void work(){ step++; for(int i=1;i<=l;i++) { s[i]=s1[i]+s2[i]; } for(int i=1;i<=l;i++)//类似高精 { if(s[i]>=m)//注意精度 { int w=s[i]/m; s[i+1]+=w; s[i]=s[i]%m; } } while(s[l+1]>0) { if(s[l+1]>=m) { int w=s[l+1]/m; s[l+2]+=w; s[l+1]=s[l+1]%m; } l++; } for(int i=1;i<=l;i++) { s1[l-i+1]=s[i]; }}bool check()//判断是否为回文数{ if(step>30) { printf("Impossible!\n"); return true; } for(int i=1;i<=l;i++) { if(s1[i]!=s1[l-i+1])return false; } printf("STEP=%d\n",step); return true;}int main(){ scanf("%d",&m); scanf("%s",a); l=strlen(a); for(int i=0;i<l;i++) { if(a[i]-'0'>10)s1[i+1]=a[i]-'A'+10; else s1[i+1]=a[i]-'0'; } while(!check()) { fz(); work(); }}
- wikioi 1045 回文数
- 1045 回文数
- wikioi 丑数
- WIKIOI-1264 芳香数
- 【Wikioi】1008-选数
- wikioi 数的划分
- 回文回文数 HUST
- 回文数&&回文串
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 数据库连接
- 并联电容器总结与理解
- 手机游戏项目《Aaron’sGreatEscape》实施方案(一)
- 类在什么时候加载和初始化
- Windows Programming 第一章 起步
- wikioi 1045 回文数
- 并联电器补偿无功功率
- Rightmost Digit
- 稳压管的使用与选取
- 基于visual Studio2013解决C语言竞赛题之0908文件合并
- Wireshark抓包工具使用教程以及常用抓包规则
- TFS2013 体验-代码审查
- easy ui 翻页信息的传递
- Spring3.0 注解小结