6 条题解
-
1
包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
- 上传者