计算回文数问题
题目:
"回文数"是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。
一个数字,把它的各位数字上数字倒过来排列组成一个新数,然后与原数相加,如果是回文数则停止,如果不是,则重复这个操作,直到和为回文数为止。如果在30步以外(含30步)不可能得到回文数,则输出0。输入的数保证不为回文数。
详细描述:
在caculateHuiWenShu函数中实现该功能:
/* 功能:
* 输入:int 一个小于的进制数
* 输出:把它的各位数字上数字倒过来排列组成一个新数,然后与原数相加,如果是回文数则停止,如果不是,则重复这个操作,直到和为回文数为止,并输出次数,如果次计算不能得到回文数,则输出。
* 返回:
例如:进制则有:
STEP1: 87+78=165
STEP2: 165+561=726
STEP3: 726+627=1353
STEP4: 1353+3531=4884
则输出 4
*/
输入一个0<=m的非回文数,输出为计算的步数 异常情况返回0
输入样例:
78
返回值样例:
4
题目和我的代码如上。但是测试案例没有完全通过,因为看不到测试案例,自己也找不到错误,希望有人帮忙解答一下,谢谢。
"回文数"是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。
一个数字,把它的各位数字上数字倒过来排列组成一个新数,然后与原数相加,如果是回文数则停止,如果不是,则重复这个操作,直到和为回文数为止。如果在30步以外(含30步)不可能得到回文数,则输出0。输入的数保证不为回文数。
详细描述:
在caculateHuiWenShu函数中实现该功能:
/* 功能:
* 输入:int 一个小于的进制数
* 输出:把它的各位数字上数字倒过来排列组成一个新数,然后与原数相加,如果是回文数则停止,如果不是,则重复这个操作,直到和为回文数为止,并输出次数,如果次计算不能得到回文数,则输出。
* 返回:
例如:进制则有:
STEP1: 87+78=165
STEP2: 165+561=726
STEP3: 726+627=1353
STEP4: 1353+3531=4884
则输出 4
*/
输入一个0<=m的非回文数,输出为计算的步数 异常情况返回0
输入样例:
78
返回值样例:
4
public static long caculateHuiWenShu(int input)
{
if(input<0)
{
return (long)0;
}
StringBuffer sb=new StringBuffer();
sb.append(input);
long result=0;
for(long i=0;i<30;i++){
result=(Long.valueOf(sb.toString())+Long.valueOf(sb.reverse().toString()));
sb.setLength(0);
sb.append(result);
if(result==Long.valueOf(sb.reverse().toString())){
return (long)(i+1);
}
sb.setLength(0);
sb.append(result);
}
return (long)0;
}
题目和我的代码如上。但是测试案例没有完全通过,因为看不到测试案例,自己也找不到错误,希望有人帮忙解答一下,谢谢。
...全文
相关推荐
C++回文数及素数问题计算方法
主要介绍了C++回文数及素数问题计算方法,可实现一定范围内的素数与回文数运算功能,涉及C++字符串遍历与数字数学运算的相关技巧,需要的朋友可以参考下
问题 W: 3.16回文数 五位数中,对称的数称为回文数,如:12321,输入数据n(n>10000),计算10000-n之间所有的回文数的个数。
五位数中,对称的数称为回文数,如:12321,输入数据n(n>10000),计算10000-n之间所有的回文数的个数。[提交] [状态] [讨论版] [命题人:tianhl]时间限制: 1 Sec 内存限制: 128 MB。提交: 4389 解决: 2683。10000-n之间所有的回文数的个数。问题 W: 3.16回文数。
Python计算回文数的方法
主要介绍了Python计算回文数的方法,实例分析了Python操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
c语言描述回文数的三种算法
主要介绍了c语言描述回文数的三种算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
使用c++实现的回文数猜想程序
课程设计,使用c++实现的回文数猜想程序


Java SE
