找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 3899|回复: 6

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

[复制链接]
发表于 2008-6-5 08:49 | 显示全部楼层 |阅读模式
1.用C语言编程:一个数N的阶乘(N为无穷大) : n+ @5 J) m6 M9 c# V, s
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 发表 3 C  h7 ^. m8 f
太简单了,我晕

( M5 S3 Z# v. \* V" E1 d2 O- D# o5 N! a5 n; _
兄弟,你就用程序做一下这题:0 {' B/ t0 t2 z  Q3 q1 @+ D0 g, @- k
1.用C语言编程:一个数N的阶乘(N为无穷大)
5 L7 {4 F( @) G: ]  f% H  L% t6 U" ^$ w7 j2 Q7 \
你用程序算一下10000!,看结果等于多少~, m2 B; c! `3 z  y0 o+ r/ ^
8 e$ `% m- t, r' D3 @
[ 本帖最后由 gzzcun 于 2008-6-5 10:28 编辑 ]
回复

使用道具 举报

发表于 2008-6-5 10:44 | 显示全部楼层
编一个圆心为(X,Y),半径为R的圆形
5 T8 F) O3 `( d; n' \! W6 C' U3 U" q8 x+ v; M+ s1 E
什么意思? 画一个圆吗?) L7 r. G: d+ L  |$ `4 d

9 M! V* [) d/ j% s第一个问题有点难,因为要无穷3 E# W  K: L) D' H/ ?" c1 U) d! N
& {" b7 ~) F, E# y1 I
如果是1000!还好办 自己写乘法 用字符串储存 不过就是速度慢了点
回复

使用道具 举报

发表于 2008-6-5 13:29 | 显示全部楼层
#include<stdio.h>
1 u# L$ b4 {' j2 w8 r/ q( b#define N 1000    //要计算的N
( Y# n% r1 A" M0 Z- d/ olong s[N]={1,1},n=N,t=2,a=1,b=0,p=10000;
( f$ g8 w6 P* r- ~5 M) ^int main()//雨中飞燕之作$ X9 O5 f" H, c' B6 u( c! |& R0 R
{* n+ s( b! C( v! S5 H% o, \
    for(;a<=*s||(++t<=n?(b=0,a=1):0);(*s==a++&&b)?(*s)++:0)5 v; P6 {: r& T" |+ G( G
        s[a]=(b+=s[a]*t)%p,b/=p;
# q) ]" p  y. H: |    for(printf("%d",s[*s]);--*s>0;)printf("%04d",s[*s]);! ^1 `: a3 d- _: u5 m
    return 0;
( m. O' F2 n/ o4 d}
. l3 p7 D, H* l5 c5 G/ Q8 c6 v* q' `
PS. 搜索的,不是我写的
& v$ F. |1 h: l0 f, q+ b% H/ {  \0 p
[ 本帖最后由 sort_0010 于 2008-6-5 13:30 编辑 ]
回复

使用道具 举报

发表于 2008-6-6 00:09 | 显示全部楼层
大数乘法很BT的说............. L7 T- A5 M' M* ?8 e# A0 ?+ H
用字符型存数据得算到什么时候........* R6 g1 m7 x) ~% Z3 @$ a/ ~; J* n! F
个人觉得得用长整形+指针来做,不过编程太复杂了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-2 05:57

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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