zoukankan      html  css  js  c++  java
  • 回文数字

    解析: 这题我觉得主要考察的地方是字符串的使用,主要是两个地方,一个是字符串的逆序,另一个是字符串中字符的相加。字符串的逆序实现方法比较多,我比较常用的是用过String类的substring()方法将这个字符串从后往前截取,拼成一个新的逆序字符串;也可以使用StringBuffer类的reverse()方法将字符串进行逆序,这个方法就会简单一些。(这里有个需要注意的地方是:当需要截取字符串中的字符进行int类型的相加时,是不可以使用charAt()方法进行截取的,字符相加时是用当前字符在ASCII码中的排序进行相加的,例如字符'1'相当于48.所以我这里用的是substring()方法)

    题目比较简单,直接上代码

    package _12_26_test;
    /*回文数字
     * 
     * 数字满足以下两个条件:
     * 1、输入n,abc符合a+b+c=n
     * 2、abc=cba
     * 3、数字居于10000、999999之间
     * 
     * 
     * 字符串的逆序
     * 
     * */
    
    import java.util.Scanner;
    
    
    
    public class fourteen {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		Scanner scanner = new Scanner(System.in);
    
    		int num = scanner.nextInt();
    		boolean flag = false;
    
    		for (int i = 10000; i < 999999; i++) {
    			String strTem = String.valueOf(i);
    			int intTem = 0;
    			String reTem = "";
    			// 各个位数相加
    			for (int j = 0; j < strTem.length(); j++) {
    				intTem = intTem + Integer.parseInt(strTem.substring(j, j+1));
    			}
    			if (intTem == num) {
    				// 若符合各个位数相加等于n,进行回文数判断
    				for (int k = 0; k < strTem.length(); k++) {
    					reTem = reTem + strTem.substring(strTem.length()-1-k,strTem.length()-k );
    				}
    				if (reTem.equals(strTem)) {
    					flag = true;
    					System.out.println(i);
    				}
    
    			}
    
    		}
    
    		if (!flag) {
    			System.out.println(-1);
    		}
    
    	}
    
    }
    
    
  • 相关阅读:
    火狐下,td 的 bug;
    在centos6.3用yum安装redis
    Linux系统下修改环境变量PATH路径的三种方法
    网络文件常常提到类似"./run.sh"的数据,这个命令的意义是什么?
    DataGridView的自定义列排序
    【Linux】linux常用基本命令
    用户名 不在 sudoers文件中,此事将被报告。(转)
    将XML文件中的内容转换为Json对象
    C# 加载xml文档文件及加载xml字符串
    增加不存在的列
  • 原文地址:https://www.cnblogs.com/lyd447113735/p/12724956.html
Copyright © 2011-2022 走看看