社区讨论

奇怪的问题 求调

P1010[NOIP 1998 普及组] 幂次方参与者 3已保存回复 10

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
10 条
当前快照
1 份
快照标识符
@m2yg2nhw
此快照首次捕获于
2024/11/01 16:00
去年
此快照最后确认于
2025/11/04 15:36
4 个月前
查看原帖
RT
为啥我输出和题目的一样,但锣鼓的评测判我WA QAQ
求大佬看看
CPP
#include<iostream>
using namespace std;
#define f(n) for(int i=n;i>1;i--)
int n;
void work(int x)
{
	if(x==2)
	{
		cout<<"2";
		return;
	}
	if(x&(x-1)==0)
	{
		int a=-1;
		while(x!=0)a++,x>>=1;
		work(a);
		return;
	}
	int a[16]={0,0},al=1;
	while(x>0)
	{
		if(x&1)a[++al]=a[al-1];
		a[al]++;
		x>>=1;
	}
	f(al-1)
	if(a[i]==1)cout<<"2+";
	else 
	{
		cout<<"2(";
		if(a[i]==0)cout<<"0";
		else work(a[i]);
		cout<<")+";
	}
	 
	
	if(a[1]==1)cout<<"2";
	else
	{
		cout<<"2(";
		if(a[1]==0)cout<<"0";
		else work(a[1]);
		cout<<")";
	}
}
int main()
{
	cin>>n;
	work(n);	
	return 0;
 } 

回复

10 条回复,欢迎继续交流。

正在加载回复...