• 会文数字


    /*问题描述
      观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。
    
      本题要求你找到一些5位或6位的十进制数字。满足如下要求:
      该数字的各个数位之和等于输入的整数。
    输入格式
      一个正整数 n (10<n<100), 表示要求满足的数位和。
    输出格式
      若干行,每行包含一个满足要求的5位或6位整数。
      数字按从小到大的顺序排列。
      如果没有满足条件的,输出:-1
    样例输入
    44
    样例输出
    99899
    499994
    589985
    598895
    679976
    688886
    697796
    769967
    778877
    787787
    796697
    859958
    868868
    877778
    886688
    895598
    949949
    958859
    967769
    976679
    985589
    994499
    样例输入
    60
    样例输出
    -1*/
    package test;
    
    import java.util.Scanner;
    
    public class 回文数字 {
        public static void main(String[] arg){
            Scanner input=new Scanner(System.in);
            int n=input.nextInt();
            int num=0;
            for(int i=10000;i<1000000;i++){//判断在给定范围内的数据是否符合条件
                if(is_huiwen(i)){//判断是否为回文数字
                    if(samen(i)==n){//判断和是否为n
                        System.out.println(i);                    
                        num++;
                    }
                }
            }
            if(num==0){
                System.out.println(-1);
            }
        }
    
        private static int samen(int i) {//计算该数据的和
            // TODO Auto-generated method stub
            int sum=0;
            int t;
            int m=i;
            for(int j=0;j<2;j++){//计算前两位数的和
                t=m%10;
                sum+=t;
                m/=10;
            }
            if(i<100000){//若数字为5位数
                sum*=2;
                sum+=m%10;
            }else{//若数字为6位数
                sum+=m%10;
                sum*=2;
            }
            return sum;
        }
    
        private static boolean is_huiwen(int k) {//判断改数是否为回文数
            // TODO Auto-generated method stub
            String str=String.valueOf(k);
            char[] c=str.toCharArray();
            for(int i=0,j=str.length()-1;i<str.length();i++,j--){//i表示前半段的数,j表示后半段的数
                if(i==j||j<i)//5位数
                    break;
                if(c[i]!=c[j])//若前后数字不相同则不是回文数
                    return false;
            }
            return true;
        }
    }
  • 相关阅读:
    WINDOWS操作系统下OpenERP源码运行的环境:eclipse + pydev + python2.7
    12款优秀的 Twitter Bootstrap 组件和工具
    推荐电脑上好用的但相对冷门的软件
    财务记账演练
    OpenERP Custom Sample Module Development – OpenERP Quick Start Guide
    免费编程入门教程资源推荐搜集
    50个很棒的Python模块
    kindle 资源
    怎么看内存的类型?
    计算机必懂的53个英文单词和缩写
  • 原文地址:https://www.cnblogs.com/ljs-666/p/8570134.html
Copyright © 2020-2023  润新知