1. 程式人生 > >ZZULIOJ 1106: 迴文數(函式專題)

ZZULIOJ 1106: 迴文數(函式專題)

題目描述

一個正整數,如果從左向 右讀(稱之為正序數)和從右向左讀(稱之為倒序數)是一樣的,這樣的數就叫回文數。輸入兩個整數m和n(m<n),輸出區間[m,n]之間的迴文數。 

 

輸入

輸入兩個正整數m和n,輸入保證m<n。 

 

輸出

按從小到大的順序,輸出m到n之間的迴文數,每個數後面有一個空格。 

 

樣例輸入

100 200

 

樣例輸出

101 111 121 131 141 151 161 171 181 191 
import java.util.Scanner;

public class Main {


        public static int inverse(int n){

                int num=0;
                while (n>0){

                        num=num*10+n%10;
                        n/=10;
                }
                return num;
        }

        public static void main(String[] args)
        {

                Scanner input=new Scanner(System.in);
                int m=input.nextInt();
                int n=input.nextInt();

                for (int i=m;i<=n;i++){

                        if(i==Main.inverse(i)){
                                System.out.print(i+" ");
                        }
                }

        }

}

基礎練習  迴文數

問題描述

  1221是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的,程式設計求所有這樣的四位十進位制數。

輸出格式

  按從小到大的順序輸出滿足條件的四位十進位制數。

public class Main {

        public static void main(String[] args) {


                for (int i = 1; i <= 9; i++) {    //千位 不能為零
                        for (int j = 0; j <= 9; j++) {   //百位
                                for (int m = 0; m <= 9; m++) {    //十位
                                        for (int n = 0; n <= 9; n++) {  // 個位
                                                if (i == n && j == m) {
                                                        System.out.printf("%d%d%d%d\n", i, j, m, n);
                                                }

                                        }

                                }


                        }


                }
        }
}

基礎練習 特殊迴文數  

問題描述

  123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。
  輸入一個正整數n, 程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 。

輸入格式

  輸入一行,包含一個正整數n。

輸出格式

  按從小到大的順序輸出滿足條件的整數,每個整數佔一行。

樣例輸入

52

樣例輸出

899998
989989
998899

資料規模和約定

  1<=n<=54。

import java.util.Scanner;

public class Main {

        public static void main(String[] args) {


                Scanner input=new Scanner(System.in);
                int n=input.nextInt();

                //n為五位數時、
                for (int a=1;a<=9;a++){   //萬位 且不能為零
                        for(int b=0;b<=9;b++){   //千位
                                for(int c=0;c<=9;c++){    //百位
                                        for (int d=0;d<=9;d++) {  //十位
                                            for (int e=0;e<=9;e++){    //個位
                                                    if((a+b+c+d+e)==n&&a==e&&b==d){
                                                            System.out.printf("%d%d%d%d%d\n", a, b, c, d,e);
                                                    }
                                            }
                                        }

                                }

                        }

                }

                //n為六位數時、
                for (int a=1;a<=9;a++){   //十萬位 且不能為零
                        for(int b=0;b<=9;b++){   //萬位
                                for(int c=0;c<=9;c++){    //千位
                                        for (int d=0;d<=9;d++) {  //百位
                                                for (int e=0;e<=9;e++){    //十位
                                                        for (int f=0;f<=9;f++) {  //個位
                                                                if ((a + b + c + d + e+f) == n && a == f && b == e&&c==d) {
                                                                        System.out.printf("%d%d%d%d%d%d\n", a, b, c, d, e,f);
                                                                }
                                                        }
                                                }
                                        }

                                }

                        }

                }

        }
}