以下是引用beyondyf在2013-4-21 19:13:54的发言:
这两段代码都不对。再好好想想。
错了啊!....晚自习回来再想想....这两段代码都不对。再好好想想。
[ 本帖最后由 Susake 于 2013-4-21 21:27 编辑 ]
仰望星空...........不忘初心!
#include<stdio.h> double qiwang(int n) { double q=0.00000; int j; if(1==n) return 1.00000; else if(2==n) return 2.00000; else { if(n%2==0) { for(j=n;j>n/2;j--) q+=(1.0/n)*2*(qiwang(j-1)+1); return q; } else { for(j=n;j>n/2;j--) q+=(1.0/n)*2*(qiwang(j-1)+1); q=q-1.0/n*(qiwang(j)+1); return q; } } } void main() { int t,n[400],i; scanf("%d",&t); for(i=0;i<t;i++) scanf("%d",&n[i]); for(i=0;i<t;i++) printf("%f\n",qiwang(n[i])); } 都说效率不高