天天看點

基礎練習 回文數 && 特殊的數字-藍橋杯-Java

 回文數

問題描述

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

輸出格式

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

兩種思路:

一:回文數的組成 兩端相等,可以由數字組成來編寫程式

源代碼:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

//普通回文數
public class Main {
  public static void main(String[] args) {
    List<Integer> list = new ArrayList<Integer>();
    for (int i = 1; i <= 9; i++) {
      for (int j = 0; j < 10; j++) {
        list.add(i*1000+j*100+j*10+i);
      }
    }
    Collections.sort(list);
    for (int i = 0; i < list.size(); i++) {
      System.out.println(list.get(i));
    }
  }
}      

二:通過給出的範圍對于其中滿足條件的數進行輸出即可

源代碼:

public class Main {
  public static void main(String[] args) {
    for(int i=1001;i<10000;++i)
      if(i/1000==i%10&&(i/10%10)==(i/100%10))
        System.out.println(i);
  }
}      

三:尋找規律...看到代碼我也驚歎!

源代碼:

public class Main {
  public static void main(String[] args) {
    for (int i = 10; i < 100; i++) {
      System.out.println(i+""+i%10+""+i/10);
    }
  }
}      

第二、三種方法是别人的代碼,此處隻做拓展思路.突然感覺自己的好麻煩...

特殊的數字

問題描述

  153是一個非常特殊的數,它等于它的每位數字的立方和,即153=1*1*1+5*5*5+3*3*3。程式設計求所有滿足這種條件的三位十進制數。

輸出格式

  按從小到大的順序輸出滿足條件的三位十進制數,每個數占一行。 

源代碼: 

public class Main {
  public static void main(String[] args) {
    for(int i = 100; i<1000; i++) {//可以分别求得個位,十位和百位
      int a = i/100;
      int b = i/10%10;
      int c = i%10;
      if(a*a*a+b*b*b+c*c*c == i) {
        System.out.println(i);
      }
    }
  }
}      

源出處: 

-------------------------------------------------------------------------------------------

                署名:​​日沉雲起​​    文章:​​藍橋杯基礎練習 回文數​​