计算从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;
}
}
注:仅供参考。
