一行之差……
查看原帖
一行之差……
379758
晨曦时雨楼主2021/9/6 18:57

0分

#include<iostream>
using namespace std;
int a[200]={1};
void find(int n)
{
	if(n==1)
	{
		cout<<"2(0)";
		return ;
	}
	if(n==2)
	{
		cout<<"2";
		return ;
	}
	int i;
	for(i=1;i<200;i++)
	{
		if(a[i]<=n&&a[i+1]>n)
			break;
	}
	if(i!=1)
	{
		cout<<'2';//
		cout<<'(';
		find(i);
		cout<<")";
	}
	if(n>a[i])
	{
		cout<<"+";
		find(n-a[i]);
		return ;
	}
}
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<200;i++) a[i]=a[i-1]*2;
	find(n);
	return 0;
}

100分

#include<iostream>
using namespace std;
int a[200]={1};
void find(int n)
{
	if(n==1)
	{
		cout<<"2(0)";
		return ;
	}
	if(n==2)
	{
		cout<<"2";
		return ;
	}
	int i;
	for(i=1;i<200;i++)
	{
		if(a[i]<=n&&a[i+1]>n)
			break;
	}
	cout<<'2';//
	if(i!=1)
	{
		cout<<'(';
		find(i);
		cout<<")";
	}
	if(n>a[i])
	{
		cout<<"+";
		find(n-a[i]);
		return ;
	}
}
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<200;i++) a[i]=a[i-1]*2;
	find(n);
	return 0;
}

神奇不???

直接原地升华

求问dalao为什么QAQ

2021/9/6 18:57
加载中...