83分MLE求助!!!
查看原帖
83分MLE求助!!!
1025321
midsummer_zyl楼主2023/8/28 20:47
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6;
int a[N], b[N] = { 0, 1, 1 };
int h = 1;
void dfs(int x, int y) {
	if(x == 1)
		return;
	if(x % y == 0) {
		a[h] = y;
		h++;
		dfs(x / y, y);
	}
	else dfs(x, y + 1);
}
int main() {
	int n, ans;
	cin >> n;
	if(n <= 2)
		ans = 1;
	else {
		for(int i = 3; i <= n; i++)
			b[i] = b[i - 1] + b[i - 2];
		ans = b[n];
	}
	cout << ans << "=";
	dfs(ans, 2);
	for (int i = 1; i <= h - 1; i++) {
		printf("%d", a[i]);
		if(i != h - 1)
			printf("*");
	}
	return 0;
}
2023/8/28 20:47
加载中...