1024. Palindromic Number

来源:互联网 发布:中国移动网络电视设置 编辑:程序博客网 时间:2024/05/21 11:32

大数问题,字符串处理。

// 1024. Palindromic Number.cpp: 主项目文件。#include "stdafx.h"#include <cstdio>#include <cstring>bool isPalindromic(char *str){int length=strlen(str);for(int i=0,j=length-1;i<=j;i++,j--){if(str[i]!=str[j])return false;}return true;}void reverserNumber(char *str,char *rev){int length=strlen(str),cnt=0;for(int i=length-1;i>=0;i--)rev[cnt++]=str[i];rev[cnt]='\0';}void plus(char *str,char *rev){char sum[151];memset(sum,0,sizeof(sum));int length=strlen(rev),cnt=0,in=0;for(int i=length-1;i>=0;i--){int temp=str[i]-'0'+rev[i]-'0'+in;sum[cnt++]=temp%10+'0';in=temp/10;}if(in!=0)sum[cnt++]=in+'0';int j=0;for(int i=cnt-1;i>=0;i--)str[j++]=sum[i];str[j]='\0';}int main(){char str[151],rev[151];int k;scanf("%s%d",str,&k);if(isPalindromic(str)){printf("%s\n0\n",str);return 0;}for(int i=1;i<=k;i++){reverserNumber(str,rev);plus(str,rev);if(isPalindromic(str)){printf("%s\n%d\n",str,i);return 0;}}if(!isPalindromic(str))printf("%s\n%d\n",str,k);return 0;}