三角形添加数--夏令营

题目

三角形添加数--夏令营_第1张图片三角形添加数--夏令营_第2张图片

 tips:

1.本题不要求正三角形输出,只要输出左下三角即可

 2.这种输入三角形的,都是可以理解为左下三角形的模型,然后去写f[i][j]=f[i-1][j]+f[i-1][j+1],写行列

3.还有双重for循环输入输出三角形,注意第二层for是j<=i要考虑到

答案

#include 
#include
#include
using namespace std;

int f[10][10];
void print()
{
	for (int i = 1; i < 10; i++)
	{
		for (int j = 1; j <= i; j++)
		{
			if (j)
			{
				cout << " ";
			}
			cout << f[i][j];
		}
		cout << endl;
	}
}
int main()
{
	int n; cin >> n;
	while (n--)
	{
		for (int i = 1; i < 10; i+=2)
		{
			for (int j = 1; j <=i ; j+=2)
			{
				cin >> f[i][j];
			}
		}

		for (int i = 9; i > 2; i-=2)
		{
			for (int j = 2; j < i; j+=2)
			{
				f[i][j] = (f[i - 2][j-1] - f[i][j - 1] - f[i][j + 1]) / 2.0;
			}
		}

		for (int i = 8; i > 1; i-=2)
		{
			for (int j = 1; j <=i ; j++)
			{
				f[i][j] = f[i + 1][j] + f[i + 1][j + 1];
			}
		}
		print();
	}
	return 0;
}

你可能感兴趣的:(算法,c++,数据结构)