N进制加法实现回文数
Posted debug-the-heart
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了N进制加法实现回文数相关的知识,希望对你有一定的参考价值。
题目描述
若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。
例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数。
又如:对于10进制数87:
STEP1:87+78 = 165 STEP2:165+561 = 726
STEP3:726+627 = 1353 STEP4:1353+3531 = 4884
在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。
例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数。
又如:对于10进制数87:
STEP1:87+78 = 165 STEP2:165+561 = 726
STEP3:726+627 = 1353 STEP4:1353+3531 = 4884
在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。
输入
第一行是整数N(2<=N<=10或N=16),表是这个数的进制;
第二行是N进制数M(100位之内),求最少经过几步可以得到回文数。
第二行是N进制数M(100位之内),求最少经过几步可以得到回文数。
输出
若最少在30步以内得到回文数,则输出步数;
如果在30步以内(包含30步)不可能得到回文数,则输出“Impossible!”
如果在30步以内(包含30步)不可能得到回文数,则输出“Impossible!”
样例输入
10
87
样例输出
4
提示
十六进制的10-15用A-F表示
我的解法(吐槽一下,在杭州师范OJ已AC,在登登OJ通过不了emm)
//30步内求N进制数回文数 #include<stdio.h> #include<string.h> char str[500]; char re_str[500]; int flag=0; void renum(){ memset(re_str,‘