给出一个十进制数(不跨越20位),将整数与它的倒序数相加,若是获得一个回文数,输出步数,若是不是回文数,则继续相加,若是在30步以内(包罗30步)得不到回文数,则输出整数不克不及获得回文数。
如何用C++实现这一算法呢?小编与大师分享编程经验。
将十进制数87转换为回文数,可以与它的倒序数相加,直到转换为回文数,共需4个步调。
首先,界说一个常量SIZE,节制数组的长度。
界说整型变量,实现法式的运算。
接着,界说一个变量,保留用于计较的整数列位的值。
界说一个布尔型变量,节制轮回的退出。
输入进制,保留在变量n中。
用do-while轮回,输入需要转换为回文的整数,保留在数组c[i]中。
用while语句节制计较回文数,前提是flag的值为真。
用两个for轮回语句,将输入的数转换为十进制数。
将两个十进制数相加,成果保留在变量sum中。
将相加获得的整数,转换为输入要求的进制。
用count实现转换步调的统计,如下图所示。
判定计较出的数是否为回文数,用while语句实现判定。
若是可以转换为回文数,输出转换当作功所需的步调。
最后,若是转换的次数年夜于30次,则输出该数不克不及转换为回文数。
运行法式,输入进制和整数后,电脑就管帐算出转换为回文数的步调数,若是不克不及转换,则输出无法转换为回文数。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!