L1-008 求整数段和 (10 分) - PAT团体程序设计天梯赛

版权声明:本文为博主原创文章,转载时请务必注明本文地址, 禁止用于任何商业用途, 否则会用法律维权! https://blog.csdn.net/weixin_43905586/article/details/88613889

题滴链接https://pintia.cn/problem-sets/994805046380707840/problems/994805135224455168

L1-008 求整数段和 (10 分)

给定两个整数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

鄙人拙见

  1. 考察点:一维转二维输出,换行
  2. 思路:将每个要计算的数字存入一维数组,然后按二维格式输出,最后求一下和
  3. 注意:换行

C++参考代码1.0:

#include <bits/stdc++.h>
using namespace std;

int main() 
{
 	int a,b;
 	scanf("%d %d",&a,&b);
 	int n = b - a + 1;
 	int num[n];
 	for(int i = 0; i < n; i++)
 	{
 		num[i] = a + i;
 	}
 	int t = 0;
 	int hang;
 	
 	if(n % 5 == 0)
 	{
 		hang = n / 5; 
 	}
 	else
 	{
 		hang = n / 5 + 1; 
 	}
 	
 	for(int i = 0; i < hang; i++)
 	{
 		for(int j = 0; j < 5; j++)
 		{
 			if(t < n)
 			{
 				printf("%5d",num[t]);
 			}
 			t = t + 1;
 		}	
 		printf("\n");
 	}
 	int sum = 0;
 	for(int i = 0; i < n; i++)
 	{
 		sum = sum + num[i];
 	}
 	printf("Sum = %d",sum);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43905586/article/details/88613889