给定两个整数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
注意: 这题有坑这题有坑!!
思路:双重for循环 然后最外层控制换行,最内层控制书写,每5个占一行,每个数字占5个字符长度,因为取值范围是-100到100 .那就是说0-9前面加5个空格,10-99前面加3个空格,100前面加2个空格,-1到-9加3个空格 ,-10到-99加2个空格,-100加1个空格。然后用if-else结构分开即可。
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc =new Scanner(System.in);
int n=sc.nextInt();
int k=sc.nextInt();
int m=n;
int sum=0;
for(int i=0;i<(k-n)/5+1;i++) {
for(int j=0;j<5;j++) {
if(m<0&&m>-10) {System.out.print(" "+m++);}
else if(m>=0&&m<=k&&m<10) {
System.out.print(" "+m++);}
else if(m>=10&&m<=k&&m<100) { System.out.print(" "+m++); }
else if(m<=-10&&m>-100) { System.out.print(" "+m++); }
else if(m==-100) { System.out.print(" "+m++); }
else if(m==100) { System.out.print(" "+m);break; }
}
System.out.println();
}
for(int i=n;i<=k;i++) {
sum=sum+i;
}
System.out.println("Sum = "+sum);
}
}