• 4305阅读
  • 1回复

[讨论]已知Xn-Xn-1=n^3+n^2-n,X0=0,求Xn. [复制链接]

上一主题 下一主题
离线tomtc123
 

只看楼主 倒序阅读 楼主  发表于: 2012-05-09
     想起一个做过的C语言的题目:
        已知Xn-Xn-1=n^3+n^2-n,X0=0,求Xn.

  1. #include <stdio.h>

  2. long f(int n);//方法①
  3. long f1(int n);//方法②

  4. int main()
  5. {
  6.     int n;
  7.     printf("请输入n的数值:\n");
  8.     scanf("%d",&n);
  9.     printf("f(%d) = %ld\n",n,f(n));
  10.     printf("f1(%d) = %ld",n,f1(n));

  11.     return 0;
  12. }

  13. long f(int n)
  14. {
  15.     int i;
  16.     long a[n];
  17.     a[0] = 0;
  18.     for(i=1;i<=n;i++)
  19.     {
  20.         a = (i*i*i)+(i*i)-i+a[i-1];
  21.     }

  22.     return a[n];

  23. }

  24. long f1(int n)
  25. {
  26.     if(n==0)
  27.     return 0;
  28.     else
  29.     return ((n*n*n)+(n*n)-n+f1(n-1));
  30. }

        这两种方法,哪一种效率会高些呢?或者有其他更好的办法吗?


离线ppdayz

只看该作者 1楼 发表于: 2012-05-12
回 楼主(tomtc123) 的帖子
你可试试
QTime    tmpTime;

tmpTime.start();
printf("f(%d) = %ld\n",n,f(n));
cout<<"f1耗时:"<<tmpTime.elapsed()<<"ms"<<endl;

tmpTime.start();
printf("f1(%d) = %ld",n,f1(n));
cout<<"f1耗时:"<<tmpTime.elapsed()<<"ms"<<endl;
快速回复
限100 字节
 
上一个 下一个