所谓回文,也就是给定的整形数颠倒过来与原来的数大小相等。
首先是C实现:
1 #include <string.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 int main() 5 { 6 int x=12321; 7 int m=0; 8 int k=0; 9 int a[5]; 10 while(x>0){ 11 m=x%10; 12 x=x/10; 13 a[k]=m; 14 k++; 15 } 16 k=k-1; 17 for(int i=0;i<k/2;i++){ 18 19 if(a[i]!=a[k-i]) printf("你所输入的数字不是回文"); 20 21 } 22 printf("你所输入的数字是回文"); 23 return 0; 24 }
接下来是栈实现数的翻转,进而比较是否变换前后相等:
1 package uhio; 2 import java.util.*; 3 public class Palindrome { 4 public static void main(String[] args) { 5 6 int a=123321; 7 int b=a; 8 int m=0,k=0; 9 Stack<Integer> stack1=new Stack<Integer>(); 10 while(a>0){ 11 m=a%10; 12 stack1.push(m); 13 a=a/10; 14 15 } 16 while(!stack1.isEmpty()){ 17 int p=stack1.pop(); 18 k=b%10; 19 if(k!=p) System.out.print("输入非回文数"); 20 b=b/10; 21 } 22 System.out.print("输入是回文数"); 23 } 24 25 }