新手编写代码,若有瑕疵盼大神指正
问题描述
打印莱布尼茨三角形。(规律:第n行有n个数,第一个数为1/n,后面每一个数的值都为此数上一行前一列的值减去本行前一列的值。)
输入
输入n表示莱布尼茨三角形的层数
输出
莱布尼茨三角形
样例输入 复制
4
样例输出 复制
1/1 1/2 1/2 1/3 1/6 1/3 1/4 1/12 1/12 1/4
代码编写如下:
#include<iostream> //2221
using namespace std;
int main()
{
int a[100][100]{}, n, i, j;
cin >> n;
for (i = 0; i <= n; i++)
a[i][0] = i + 1;
if (n == 1)
cout << "1" << "/" << a[0][0] << endl;
else
for (i = 0; i < n; i++)
{
if (i == 0)
{
cout << "1" << "/" << a[i][0] << endl;
i = 1;
}
cout << "1" << "/" << a[i][0] << " ";
for (j = 1; j <= i; j++) //注意这里j<=i;n行有n个数
{
a[i][j] = a[i - 1][j - 1] * a[i][j - 1] / (a[i][j - 1] - a[i - 1][j - 1]); //计算分母的值,找规律
if (j == i)
cout << "1" << "/" << a[i][j] << endl;
else
cout << "1" << "/" << a[i][j] << " ";
}
}
}