每日作业20200511 - 计数 (打印排版,换行 )

题目

输入一个整数(100~9999), 输出 【10 ~ 该数】 之间
	所有个位数 减去 其他位数 的差 大于 0 的数字数量
	(合法的数字样例 124, 258, 247)
	(不合法的数字样例: 121, 256, 246)

代码

import java.util.Scanner;

public class Homework0511 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("输入一个介于 100~9999 的整数:");
        int num = sc.nextInt();     //接收用户输入的数字
        int count = method(num);	//调用method 方法,并接收
        System.out.println("一共有:" + count);
    }

    /**
     * 该方法对用户输入的数字进行运算,并返回结果
     * @param num 用户输入的数字
     * @return  返回计算结果
     */
    public static int method(int num) {     //传入用户输入的数字
        int count = 0;  //计数器
        int result = 0; //每个数的计算结果
        int temp = 0;   //临时变量
        for(int j = 10; j <= num ; j++) {
            temp = j;   //将循环的数赋给循环变量
            String str = Integer.toString(temp);     //转成 String
            result = temp % 10;      //存放结果,先将个位数赋值给result
            temp /= 10;      //去掉个位数字

            for (int i = 1; i < str.length(); i++) {     //循环计算,共执行 str.length() - 1 次
                result -= temp % 10;     //减个位数
                temp = temp / 10;     //去掉个位数
            }

            if (result > 0){    //满足条件,计数
                System.out.print( j + ( j % 10 == 9 ? "\n" : "\t") ); 	//打印,每遇到尾数是9便换行
                count++;    //计数
            }
        }
        System.out.println();   //换行
        return count;      //返回结果
    }
}

运行结果

输入一个介于 100~9999 的整数:500
12	13	14	15	16	17	18	19
23	24	25	26	27	28	29
34	35	36	37	38	39
45	46	47	48	49
56	57	58	59
67	68	69
78	79
89
102	103	104	105	106	107	108	109
113	114	115	116	117	118	119
124	125	126	127	128	129
135	136	137	138	139
146	147	148	149
157	158	159
168	169
179
203	204	205	206	207	208	209
214	215	216	217	218	219
225	226	227	228	229
236	237	238	239
247	248	249
258	259
269
304	305	306	307	308	309
315	316	317	318	319
326	327	328	329
337	338	339
348	349
359
405	406	407	408	409
416	417	418	419
427	428	429
438	439
449

一共有:136

你可能感兴趣的:(每日作业,java)