1 条题解
-
0
C++ :
#include<iostream> #include<iomanip> using namespace std; int A[25]; //用于保存选了哪些元素 int n,amount; void Print(int len){ for(int i=len-1;i>=0;i--) cout<<A[i]<<' '; cout<<endl; } void Generate(int i, int m){ //i为当前最前的数字,m为数字串的长度 //不作任何处理; amount++; //Print(m); //加数 for(int a=1;a<=i/2;a++){ A[m]=a; Generate(a,m+1); } } int main(){ while(true){ cin>>n; if(n==0) break; A[0]=n; amount=0; Generate(n,1); cout<<amount<<endl; } return 0; }
Pascal :
var a:array[1..1000] of longint; s,i,j,n,top:longint; begin readln(n); while n<>0 do begin a[1]:=n; inc(s); top:=1; if n>1 then repeat while a[top]>1 do begin inc(top); a[top]:=a[top-1] div 2; inc(s); end; if top>2 then begin dec(top); dec(a[top]); a[top+1]:=0; inc(s); end; until (a[2]=1) ; writeln(s); s:=0; readln(n); end; end.
- 1
信息
- ID
- 469
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者