计算从n到m累加的和(n<m)

题目描述

计算从n加到m的结果。要求:输入两个字符串变量n和m,并控制m大于n。(n和m可以是数字也可以为单个字母或者符号)

输入

12 13
-1  a
 b  a

输出

25
4752
195

实现代码

import java.util.Scanner;

public class Test1 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入两个字符串分别为n, m(空格隔开):");
		String n = sc.next();
		String m = sc.next();
		char c[] = n.toCharArray();
		char cc[] = m.toCharArray();
		
		boolean b = false;
		boolean cb = isNum(c,b);
		boolean ccb = isNum(cc,b);
		if(cb == true && ccb == true) {  //n,m都是数字
			int in = Integer.parseInt(n);
			int im = Integer.parseInt(m);
			showSum(in, im);
		}else if(cb == false && ccb == false){  //n,m都是非数字
			int in = (int)c[0];
			int im = (int)cc[0];
			showSum(in, im);
		}else if(cb == true && ccb == false){  //n是数字,m是非数字
			int in = Integer.parseInt(n);
			int im = (int)cc[0];
			showSum(in, im);
		}else {  //n是非数字,m是数字
			int in = (int)c[0];
			int im = Integer.parseInt(m);
			showSum(in, im);
		}
		
		
	}
	//自定义方法实现和的计算
	private static void showSum(int in, int im) {
		if(in > im) {
			int temp = 0;
			temp = in;
			in = im;
			im = temp;
		}
		
		int sum = 0;
		for(int j = in; j <= im; j++) {
			sum += j;
		}
		
		System.out.println("从n加到m的结果是:" + sum);
	}
	//自定义方法判断接收的字符串是否是数字
	private static boolean isNum(char c[], boolean b) {
		b = false;
		int count = 0;
		int p = 0;
		if((int)c[0] == 45) {
			p = 1;
			count++;
		}
		for(int j = p; j < c.length; j++) {
			int k = (int)c[j] - 48;
			for(int i = 0; i <= 9; i++) {
				if(k == i) {
					count++;
				}
			}
		}
		if(count == c.length) {
			b = true;
		}
		return b;
	}

}

注:仅供参考。

经验分享 程序员 微信小程序 职场和发展