第七届蓝桥杯个人赛省赛(软件类)C++B组试题第一题

一【题目描述】


煤球数目

有一堆煤球,堆成三角棱锥形。具体:
第一层放1个,
第二层3个(排列成三角形),
第三层6个(排列成三角形),
第四层10个(排列成三角形),
....
如果一共有100层,共有多少个煤球?

请填表示煤球总数目的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
 

二【解题思路】

     这是一道程序填空题,它需要我们求出一共有多少个煤球,那么你很容易看出来,第一层与第二层相差2,然后是相差3,4,那么我们可以用这个规律直接用for循环来求总数,这只是一种方法;也可以观察出规律,然后可能符合等差或者等比,之后进行公式的计算。这里就直接用for循环求出结果,因为一般的经验来说,这样的数列是没有通向公式的,所以我们直接暴力的方法。

     我们直接用for循环,一到100,循环累计,a[i]=a[i-1]+i(i是i层)。

三【解题步骤】

#include<iostream>
using namespace std;

int main()
{

	int n=0;
	int sum;
	for(int i=1;i<=n;i++)
	{
		n = n+i;//这里就计算出了下一个
        sum+=n;//累加
	}
	cout<<sum<<endl;
	return 0;
}

答案:171700

四【总结】

     一般找规律可以暴力破解,也可能会与数学知识挂钩,细心一点就好。如有更好的,欢迎交流哦。

发布了123 篇原创文章 · 获赞 234 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_43919400/article/details/105343058