QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1639|回复: 17

来个巨简单的题目,台台人气,每人都做吧

[复制链接]
发表于 2003-10-17 23:19:04 | 显示全部楼层 |阅读模式
用递推法实现k!,k小于n(n<=100),(3分钟之内做出来才有效哦:D)
发表于 2003-10-18 14:01:34 | 显示全部楼层
搞笑啊,果然巨简单~
回复

使用道具 举报

 楼主| 发表于 2003-10-18 15:09:52 | 显示全部楼层
是啊,路过的时候见这里实在是惨淡,看不下去了,难道是大家嫌简单都不做?

回复

使用道具 举报

 楼主| 发表于 2003-10-18 15:17:21 | 显示全部楼层
虽然是简单得不行了,不过话说回来,现在很多人都不注意基本的东西,比如说算法和一些语言的特性,其实这些都关键。像一段代码你用一种方法实现之后,有没有想过去寻找一种更优的方法呢?有没有想过在程序中使用更好的技巧呢?
回复

使用道具 举报

 楼主| 发表于 2003-10-18 15:22:47 | 显示全部楼层
[code:1]
#include <stdio.h>
int main(){printf("Hello,World\n");return 0;}
[/code:1]

就是一段可以正确的代码,但是你会认为就是好的吗?
回复

使用道具 举报

发表于 2003-10-20 22:21:05 | 显示全部楼层
哈哈
简单!!!!!
回复

使用道具 举报

发表于 2003-10-20 22:44:16 | 显示全部楼层
谁说简单了?
你能分别使用Ada,Basic,C,C++,C#,Java,Lisp,Pascal,Perl,PHP,Python分别实现一便吗?

我想这里的大多数都不能。但是美国那些从Unix诞生开始到现在一直在做编程的资深程序员就可以。
回复

使用道具 举报

发表于 2003-10-22 13:46:05 | 显示全部楼层
我晕,不过写这么多的程序有没有用啊!!!做程序员需要这么多的语言吗???
天啊!!! 不是要学到死了吗???
回复

使用道具 举报

 楼主| 发表于 2003-10-22 18:36:52 | 显示全部楼层
我想组长的意思应该是说,要深入研究而不是浅尝则止
回复

使用道具 举报

 楼主| 发表于 2003-10-22 22:13:55 | 显示全部楼层

自己UP一下

[code:1]
#include <stdio.h>
#include <malloc.h>

#define MAXN 1000

void pnext(int a[], int k){
      int *b, m=a[0], i, j, r, carry;
      b=(int*)malloc(sizeof(int)*(m-1));
      for(i=1; i<=m; i++)   b[i]=a[i];
      for(j=1; j<k; j++){
           for(carry=0, i=1; i<=m; i++){
                 r=(i<=a[0]?a[i]+b[i]:a[i])+carry;
                a[i]=r%10;
                carry=r/10;
           }
      if(carry)   a[++m]=carry;
     }
     free(b);
     a[0]=m;
}

void write(int *a, int k){
      int i;
      printf("%4d!=", k);
      for(i=a[0]; i>0; i--)    printf('%d',a[i]);
      printf("\n");
}

int  main(int argc, char** argv){
      int a[MAXN];
      int n, k;
      printf("Input the number n:  ");
      scanf(" %d", &n);
      a[0]=1;   a[1]=1;    write(a, 1);
      for(k=2; k<=n; k++){
           pnext(a, k);
           write(a, k);
           getchar();
      }
      return 1;
}
[/code:1]

没有什么好说的.........
回复

使用道具 举报

发表于 2003-10-22 22:40:39 | 显示全部楼层
以前在另一个论坛上看到一个人说道:其实这些算法到用的时候只要从数据结构的书上抄抄就行了~
我十分赞同,因为……
回复

使用道具 举报

 楼主| 发表于 2003-10-23 12:31:12 | 显示全部楼层
可是并不是所有的问题都有现成的算法

我想大家应该不会满足吃祖宗的老本吧

我更欣赏那句话:“逆水行舟,不进则退”,学习编程就是这样。

我不反对使用已有的成果,就像Java的pattern,是经过了锤炼的,可是我们仍然需要

通过学习去理解它,才能在实际运用中发挥得更得心应手

我想你的老板一定不会愿意你在拿到一个subject以后,一个一个pattern去试:)
回复

使用道具 举报

发表于 2003-10-23 13:17:02 | 显示全部楼层
呵呵,是啊,重要的是理解这些算法的设计思想
不过,我却发现,对一个软件,数据结构的设计甚至比算法更重要。如果不需要排序,那么再好的排序算法都是垃圾~
回复

使用道具 举报

 楼主| 发表于 2003-10-23 13:23:54 | 显示全部楼层
是啊是啊,可是你不能够保证你一辈子都不会用到排序,所以你必须去学它

这就叫做:“艺多不压身”!
回复

使用道具 举报

发表于 2003-12-18 02:47:16 | 显示全部楼层

Re: 自己UP一下

用 gcc 编译出来运行会 core dump 啊.
printf('%d',a);
       ~~~~
       原因
我不知道 kylix 是否允许这样(我没用过 kylix)

[quote:e8a22362f5="fishcrazy"][code:1]
...
void write(int *a, int k){
      int i;
      printf("%4d!=", k);
      for(i=a[0]; i>0; i--)    printf('%d',a[i]);
      printf("\n");
}

int  main(int argc, char** argv){
      int a[MAXN];
      int n, k;
      printf("Input the number n:  ");
      scanf(" %d", &n);
      a[0]=1;   a[1]=1;    write(a, 1);
      for(k=2; k<=n; k++){
           pnext(a, k);
           write(a, k);
           getchar();
      }
      return 1;
}
[/code:1]

没有什么好说的.........[/quote]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-9 00:39 , Processed in 0.097343 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表