如下代码:
- package test;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * 请输出满足这样条件的五位数,并统计有多少个
- * 10000-99999
- 个位=万位
- 十位=千位
- 个位+十位+千位+万位=百位
- 11411
- * @author java-dream
- *
- */
- public class Test1 {
-
- public static void main(String[] args){
- int number = 10000;//初始值
- List<Integer> numBarrel = new ArrayList<Integer>();//用于存放符合条件的数字
-
- while(number<100000){//number每次递增1,如果number还是五位数,则判断是否符合条件
- int n = 1;
- int index = 0;
- int[] barrel = new int[5];//该数组用于存放number数值各个位置的数值
-
- while(number/n>=1){
- barrel[index++] = (number/n)%10;//获取number个位、十位、百位、千位、万位的数值,
- //并保存到barrel数组
- n *= 10;
- }
- //判断number是否符合条件
- if(barrel[0]==barrel[4] && (barrel[1]==barrel[3])
- && (barrel[0]+barrel[1]+barrel[3]+barrel[4])==barrel[2]){
- numBarrel.add(number);
- }
-
- number++;
- }
- System.out.println(numBarrel);
- }
- }
复制代码
输出结果:
- [10201, 11411, 12621, 13831, 20402, 21612, 22822, 30603, 31813, 40804]
复制代码 |