找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 3922|回复: 6

[提问] 请教两C语言算法:(面试时碰到的题目)

[复制链接]
发表于 2008-6-5 08:49 | 显示全部楼层 |阅读模式
1.用C语言编程:一个数N的阶乘(N为无穷大) # @/ h# n  ?+ v5 @
2.用C语言编一个圆心为(X,Y),半径为R的圆形
发表于 2008-6-5 09:11 | 显示全部楼层
LZ还是不要去面技术的了 呵呵
回复

使用道具 举报

发表于 2008-6-5 09:54 | 显示全部楼层
太简单了,我晕
回复

使用道具 举报

发表于 2008-6-5 10:06 | 显示全部楼层
原帖由 我不是新仔 于 2008-6-5 09:54 发表 ( l* n% {, X3 ?2 H- B0 x
太简单了,我晕

. x7 a. k! X0 o+ Y& j' g( o
2 K$ b" n1 f# E$ z- q& x兄弟,你就用程序做一下这题:
3 K1 o; E& s0 C  I  j1.用C语言编程:一个数N的阶乘(N为无穷大)* D5 y# P$ p1 @
9 c# z9 E" E- ^" K
你用程序算一下10000!,看结果等于多少~8 A8 Q: @+ Z; b  w; o

# V5 M* R" ]! }9 \+ j+ p[ 本帖最后由 gzzcun 于 2008-6-5 10:28 编辑 ]
回复

使用道具 举报

发表于 2008-6-5 10:44 | 显示全部楼层
编一个圆心为(X,Y),半径为R的圆形
. r& ^. F9 N# w5 _/ I
5 G& F0 \9 f+ I& t- f$ H( D什么意思? 画一个圆吗?$ X$ p2 W( |4 p

- O* \5 r  a- D1 Z+ d0 K第一个问题有点难,因为要无穷
  l) D. r: O' g2 F8 t& ]0 E) O) p- f) h5 L
如果是1000!还好办 自己写乘法 用字符串储存 不过就是速度慢了点
回复

使用道具 举报

发表于 2008-6-5 13:29 | 显示全部楼层
#include<stdio.h>) {% x" u7 y! A- `+ r1 f
#define N 1000    //要计算的N
" H/ u! b1 W6 M  Q* M7 q6 Y  l  `) ~long s[N]={1,1},n=N,t=2,a=1,b=0,p=10000;0 }0 a& ?0 R( ?7 A! F! N( U  i5 ?
int main()//雨中飞燕之作) [, F1 f. R* P! \# N! C
{
3 g7 }  a6 v' }1 q    for(;a<=*s||(++t<=n?(b=0,a=1):0);(*s==a++&&b)?(*s)++:0): B: W& k3 e' `; t9 C
        s[a]=(b+=s[a]*t)%p,b/=p;
3 g& n7 |, R4 r6 Q( X8 H    for(printf("%d",s[*s]);--*s>0;)printf("%04d",s[*s]);  l, @# D" @3 a* m& e
    return 0;4 s+ V0 R/ q' n- @
}
4 c" N; d$ V8 s+ [; ]/ t2 c3 p6 [* R( U  Q+ F
PS. 搜索的,不是我写的( U0 G+ h) |# T" n4 G& t

7 \' @' r% d* C3 q[ 本帖最后由 sort_0010 于 2008-6-5 13:30 编辑 ]
回复

使用道具 举报

发表于 2008-6-6 00:09 | 显示全部楼层
大数乘法很BT的说............
4 |7 X+ E4 z1 b* W. `5 x8 B; q' ?用字符型存数据得算到什么时候........' q" G$ K! v9 y" Z' ?- O
个人觉得得用长整形+指针来做,不过编程太复杂了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2026-7-23 13:12

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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