有哪位高手用JAVA帮我编写一个程序,可以判断输入的是否为回文

(例如:ABCDCBA是回文,但输入ABCD就判断不是回文 注意:只需要判断英文字母就可以了 最好用 ECLIPSE写)

这是手写的,思想,代码差不多 String str="";//输入 int len=str.length(); for(int i=0;i<len的一半;i++){ if(str.subString(i,i+1).equals(str.subString(len))) 是回文 }
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-05
#include <stdio.h> #include <math.h> #include <time.h> #include <stdlib.h> int a, b; int mpow( int s, int t, int m ) { long long f, p; if ( t == 0 ) return 1; f = mpow( s, t >> 1, m ); if ( t & 1 ) { p = s * f * f; return p % m; } p = f * f; return p % m; } int Miller_Ribin( int s ) { int i, p; for ( i = 0; i < 3; i++ ) { p = rand()% ( s - 2 ) + 2; if ( mpow( p, s - 1, s ) != 1 ) break; } return i == 3; } void work( int c ) { int p = ( c - 1 ) >> 1, i, j, s = 1, r, t1, t2; if ( c == 1 ) { if ( a <= 3 && b >= 3 ) printf("3\n"); if ( a <= 5 && b >= 5 ) printf("5\n"); if ( a <= 7 && b >= 7 ) printf("7\n"); return ; } for ( i = 0; i < p; i++ ) s *= 10; for ( i = 1; i < 10; i += 2 ) { for ( j = 0; j < s; j++ ) { r = i * s + j; t1 = j / 10; t2 = p - 1; while ( t2 ) { r = r * 10 + ( t1 % 10 ); t1 /= 10; t2--; } r = r * 10 + i; if ( r < a ) continue; if ( r > b ) return ; if ( Miller_Ribin( r ) ) printf("%d\n", r); } } } int main( ) { int s, e; srand( time( NULL ) ); int i, p, c; // scanf("%d%d", &a, &b); a = 3; b = 1000000000; p = 1; c = 0; while ( p < a ) { c++; p *= 10; } p /= 10; while ( p < b ) { if ( c == 2 ) printf("11\n"); if ( c & 1 ) work( c ); c++; p *= 10; } printf("force program runs %.3lfs\n", clock( ) / (double) CLK_TCK); return 0; } 这个是C语音判断素数的程序 其实思想是一样的 你自己看看能看懂麽 JAVA 我还卜怎么了解 希望对你有用。。
相似回答
大家正在搜