PTA 程序设计天梯赛 Java L1-008 求整数段和 (10分)

L1-008 求整数段和

给定两个整数A和B,输出从A到B的所有整数以及这些数的和。

输入格式:
输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。

输出格式:
首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。

输入样例:

-3 8

输出样例:

   -3   -2   -1    0    1
    2    3    4    5    6
    7    8
Sum = 30

实现代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        try {
    
    
            String[] strs = bf.readLine().split(" "); //输入
            String str = "";
            int m = Integer.parseInt(strs[0]),
                    n = Integer.parseInt(strs[1]), // 将输入的字符串, 转换成int类型,方便计算
                    sum = 0,count = 0; // sum 计算和,   count起到一个控制作用
            for (int i=m ; i<=n ;i++){
    
    
                sum += i; //求和
                str += join(str,i); //拼接字符串 完成单个数字的字符串格式
                count++;
                if (count == 5){
    
    
                    count = 0;
                    str += "\n";
                }
            }
            if (count == 0){
    
    
                str = str.substring(0,str.length()-2);
            }
            System.out.println(str);
            System.out.println("Sum = " + sum);
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }

    public static String join(String strs, int reg) {
    
      // 拼接
        String[] regStr = (""+reg).split("");
        int len = regStr.length;
        String[] forStr = new String[5];
        for (int i = 4; i >= 0; i--) {
    
    
            if (len>0){
    
    
                forStr[i] = regStr[--len];
            }else {
    
    
                forStr[i] = " ";
            }
        }
        strs = join(forStr ,"");
        return strs;
    }

    public static String join(String[] strs, String reg) {
    
    
        String str = "";

        for(int i = 0; i < strs.length; ++i) {
    
    
            str = str + strs[i];
            if (i != strs.length - 1) {
    
    
                str = str + reg;
            }
        }

        return str;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_37079157/article/details/109270143