您的位置:首页 > 游戏 > 手游 > 龙岩门户网站_知名自助建站平台_小程序推广赚佣金平台_免费的网站平台

龙岩门户网站_知名自助建站平台_小程序推广赚佣金平台_免费的网站平台

2024/12/27 5:23:43 来源:https://blog.csdn.net/flyidj/article/details/143082891  浏览:    关键词:龙岩门户网站_知名自助建站平台_小程序推广赚佣金平台_免费的网站平台
龙岩门户网站_知名自助建站平台_小程序推广赚佣金平台_免费的网站平台

A number that will be the same when it is written forwards or backwards is known as a Palindromic Number. For example, 1234321 is a palindromic number. All single digit numbers are palindromic numbers.

Non-palindromic numbers can be paired with palindromic ones via a series of operations. First, the non-palindromic number is reversed and the result is added to the original number. If the result is not a palindromic number, this is repeated until it gives a palindromic number. For example, if we start from 67, we can obtain a palindromic number in 2 steps: 67 + 76 = 143, and 143 + 341 = 484.

Given any positive integer N, you are supposed to find its paired palindromic number and the number of steps taken to find it.

Input Specification:

Each input file contains one test case. Each case consists of two positive numbers N and K, where N (≤1010) is the initial numer and K (≤100) is the maximum number of steps. The numbers are separated by a space.

Output Specification:

For each test case, output two numbers, one in each line. The first number is the paired palindromic number of N, and the second number is the number of steps taken to find the palindromic number. If the palindromic number is not found after K steps, just output the number obtained at the Kth step and K instead.

Sample Input 1:

67 3

Sample Output 1:

484
2

Sample Input 2:

69 3

Sample Output 2:

1353
3

 solution:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
bool isreverse(string s)
{/*int i=0,j=s.size()-1;while(i<=j){if(s[i]!=s[j])return false;}return true;*/string n=s;reverse(n.begin(),n.end());return n==s?true:false;
}
string add(string a,string b)
{int i=a.size()-1;int j=b.size()-1;int add=0;string ans;while(i>=0 || j>=0 || add){int cnt=0;cnt+=i>=0?a[i--]-'0':0;cnt+=j>=0?b[j--]-'0':0;cnt+=add;ans.push_back(cnt%10+'0');add=cnt/10;}int k;for(k=ans.size()-1;k>=0;k--){if(ans[k]!='0')break;}ans.erase(k+1);reverse(ans.begin(),ans.end());return ans;
}
int main()
{string n;int k;cin>>n>>k;int cnt=0;while(!isreverse(n)){if(cnt==k)break;cnt++;string m=n;reverse(m.begin(),m.end());n=add(n,m);}cout<<n<<endl<<cnt<<endl;/*if(isreverse(n)){cout<<n<<endl<<cnt<<endl;return 0;}for(cnt=1;cnt<=k;cnt++){string m=n;reverse(m.begin(),m.end());n=add(n,m);if(isreverse(n)||cnt==k){cout<<n<<endl<<cnt<<endl;return 0;}}*/
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com