学会了C的递归 学会了部分记忆化的思想 C没有pascal的int64,long long貌似也很囧,用double代替感觉不错 #include < stdio.h > ;#include < string .h > ; double a[ 10000001 ]; double f( long x) ... { if (x==1) return 1; if (x==0) return 0; if (x<=10000000 && a[x]>0) return a[x]; double y; y=f((long)x/2)+f((long)x/3)+f((long)x/4); if (x>y) y=x; if (x<=10000000) a[x]=y; return y; } int main() ... {long n; while (scanf("%d",&n)!=EOF)...{ printf("%0.0f ",f(n)); } return 0;}