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);
    		}
    
    	}
    
    }
    
    
  • 相关阅读:
    Python Revisited Day 13 (正则表达式)
    Python Revisited Day 06 (面向对象程序设计)
    Python Revisited (变量)
    Python Revisited Day 05(模块)
    Python Revisited Day 04 (控制结构与函数)
    Python Revisited Day 03 (组合数据类型)
    Numpy
    Python Revisited Day 01
    Python3使用openpyxl读写Excel文件
    Python3操作YAML文件
  • 原文地址:https://www.cnblogs.com/lyd447113735/p/12724956.html
Copyright © 2011-2022 走看看