关于帕斯卡三角形
查看原帖
关于帕斯卡三角形
482610
Mortidesperatslav楼主2023/7/2 09:52

rt,我貌似发现了一种算法,时间复杂度 O(n)O(n),空间复杂度 O(1)O(1),代码量小,而且和组合比不容易爆 int。

#include<bits/stdc++.h>
using namespace std;
int pascal(int n,int m){//第n行第m列,第1行是 1 1 
	if(m>(n+1))return -1;
	if(m>(n+1)/2)m=(n+1-m)+1;
	register int val=1,x=1;
	while(x<m){
		if(val%x==0){
			val/=x;
			val*=(n-x+1);
		}
		x++;
	}
	return val;
}
int main(){
	int n,m;
	cin>>n>>m;
	cout<<pascal(n,m);
}
2023/7/2 09:52
加载中...