暴力解决特殊回文

基础练习 特殊回文数  

时间限制:1.0s   内存限制:512.0MB 

问题描述

  123321是一个非常特殊的数,它从左边读和从右边读是一样的。
  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。

输入格式

  输入一行,包含一个正整数n。

输出格式

  按从小到大的顺序输出满足条件的整数,每个整数占一行。

样例输入

52

样例输出

899998
989989
998899

数据规模和约定

  1<=n<=54。

由于for循环和条件语句的结合容易造成疏漏,要注意细节,不要弄错变量与变量之间的区别

如下是我用的暴力解决方法所写代码:

public class Work1 {
         public static void main(String[] args) {
			Scanner sca=new Scanner(System.in);
			int n,x;
			String str;
			n=sca.nextInt();
			for(int i=10000;i<1000000;i++){
				
				str=Integer.toString(i);   //将整形转换为字符串型				
				x=0;
				//方法二
				//str=String.valueOf(i);		
				
				for(int j=0;j<str.length()/2;j++){
					if(str.charAt(j)==str.charAt(str.length()-1-j)){
					//	或用 x=x+Integer.valueOf(str.charAt(j)).intValue()*2;	
							
						x+=(str.charAt(j)-'0')*2;	
					}
				    else if(str.charAt(j)!=str.charAt(str.length()-1-j)){
						break;
					}				
					if(j==str.length()/2-1){
					
						if(str.length()%2==0&&n==x){
						System.out.println(i);
						}
						else if(str.length()%2==1){
							
							x+=str.charAt(j+1)-'0';
							if(n==x){
								System.out.println(i);
							}							
						}
					}
				}
			}
		}
}

猜你喜欢

转载自blog.csdn.net/qq_42794545/article/details/82823339
今日推荐