6 条题解

  • 1
    @ 2026-1-17 15:57:38

    包AC

    #include<bits/stdc++.h>//递归汉诺塔 
    using namespace std; 
    int a[10000],n,total=0;
    void pr(int d){
    	total+=1;
    	cout<<n<<"=";
    	for(int i=1;i<=d-1;i++){
    		cout<<a[i]<<"+";
    	}
    	cout<<a[d];
    	cout<<endl;
    } 
    void step(int dep,int rest){
    	if(rest==0){
    		if(dep>2){
    			pr(dep-1);
    			return;
    		}
    	}
    for(int i=a[dep-1];i<=rest;i++){
    	a[dep]=i;
    	step(dep+1,rest-i);
    
    }
    }
    int main(){
    	
    	cin>>n;
    	a[0]=1;
    	step(1,n);
    	cout<<"total="<<total;
    }
    

信息

ID
1242
时间
1000ms
内存
256MiB
难度
4
标签
递交数
404
已通过
178
上传者