题目求助
  • 板块灌水区
  • 楼主xpg007
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/4/27 20:51
  • 上次更新2024/4/30 22:00:01
查看原帖
题目求助
1024680
xpg007楼主2024/4/27 20:51

肝了3小时,即将破防

P1010 [NOIP1998 普及组] 幂次方

我的代码(测试都没过……)

#include <bits/stdc++.h>
using namespace std;
string a[20001];
string dfs(int n){
	if (a[n] != "")
		return a[n];
	string bin = "";
	while (n){
		bin = char(n % 2 + '0') + bin;
		n /= 2;
	}
	if (bin.size() == 0)
		return "0";
	string ans = "";
	for (int i = 0; i < bin.size(); i++)
		if (bin[i] == '1'){
			ans = ans + "2(" + dfs(bin.size() - i - 1) + ")+";
		}
	ans = ans.substr(0, ans.size() - 1);
	a[n] = ans;
	return ans;
} 
int main(){
	a[1] = "2(0)";
	a[2] = "2";
	int n;
	cin >> n;
	cout << dfs(n);
	return 0;
}
2024/4/27 20:51
加载中...