p.s.个人收录用
题目描述
同一平面内有n(n≤500)条直线,已知其中p(p≥2)条直线相交于同一点,则这n条直线最多能将平面分割成多少个不同的区域?
输入
两个整数n(n≤500)和p(如果n>=2则2≤p≤n)。
输出
一个正整数,代表最多分割成的区域数目。
样例输入 Copy
12 5
样例输出 Copy
73
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <string.h>
//平面分割
int a[1000] = { 0 };
int num(int n)
{
if (a[n])
return a[n];
a[n] = num(n - 1) + n;
return a[n];
}
int main()
{
int n, p;
scanf("%d%d", &n, &p);
a[p] = 2 * p;
printf("%d\n", num(n));
}