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
C语言参考代码:
#include<stdio.h>
int main(){
int a,b,i,sum=0;
scanf("%d %d",&a, &b);
for(i=a;i<=b;i++){
printf("%5d",i);
sum+=i;
if((i-a+1)%5==0||i==b)
printf("\n");
}
printf("Sum = %d",sum);
}
C++参考代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,i,sum=0;
cin>>a>>b;
for(i=-a+1;i<=b;i++){
sum+=i;
}
for(i=1;a<=b;i++){
printf("%5d",a);
if(i%5==0&&a!=b)cout<<endl;
a++;
}
cout<<endl;
cout<<"Sum = "<<sum;
}
Python参考代码:
a,b=input().split()
Sum = 0
flag =0
for i in range(int(a), int(b) + 1):
flag += 1
Sum += i
print('{:5d}'.format(i), end='')
if flag % 5 == 0 and i != int(b):
print()
print()
print("Sum = " + str(Sum))
Golang参考代码:
package main
import "fmt"
func main(){
var a,b int
count:=0
sum:=0
fmt.Scanf("%d %d",&a,&b)
for i:=a;i<=b;i++{
if count%5==0&&count!=0{
fmt.Println()
}
count+=1
sum+=i
fmt.Printf("%5d",i)
}
fmt.Printf("\nSum = %d",sum)
}