找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 3915|回复: 6

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

[复制链接]
发表于 2008-6-5 08:49 | 显示全部楼层 |阅读模式
1.用C语言编程:一个数N的阶乘(N为无穷大)
. S- m. Y9 Q- t' g, f2.用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 发表
* `; t: u0 k1 `太简单了,我晕
  O' O7 O' |  R1 j+ H
! d; s( c& g( C* n8 Z, G- E
兄弟,你就用程序做一下这题:$ K, s) B1 `! T, t& B/ K2 R. m
1.用C语言编程:一个数N的阶乘(N为无穷大)) M1 \7 {1 U9 p) p( w

, p8 ~9 T8 [  J8 Z' C- A. y" z你用程序算一下10000!,看结果等于多少~
0 W: y0 p0 I5 k- m  r) ?& U0 }5 ], ^6 z, @& M7 ]* q
[ 本帖最后由 gzzcun 于 2008-6-5 10:28 编辑 ]
回复

使用道具 举报

发表于 2008-6-5 10:44 | 显示全部楼层
编一个圆心为(X,Y),半径为R的圆形
6 ], X$ q5 L) p
! d1 {9 S2 ?* e什么意思? 画一个圆吗?
- o! p) R+ u' }( m( q9 [4 s: g) Y6 }4 w
第一个问题有点难,因为要无穷
3 l2 w5 {* G: D: h+ a$ p# b' g6 _- k- S( y7 {) X' s
如果是1000!还好办 自己写乘法 用字符串储存 不过就是速度慢了点
回复

使用道具 举报

发表于 2008-6-5 13:29 | 显示全部楼层
#include<stdio.h>+ ?4 |) ?- g$ E% V# i( b
#define N 1000    //要计算的N
  ]' K. A# e0 m# ?' r4 ulong s[N]={1,1},n=N,t=2,a=1,b=0,p=10000;: s: x( v5 v$ i8 g# n: B) N' G
int main()//雨中飞燕之作" P6 t" Z. g" K: x( x* @* g
{7 W2 C3 a2 \* s  b6 R! }
    for(;a<=*s||(++t<=n?(b=0,a=1):0);(*s==a++&&b)?(*s)++:0)
+ Z7 f& w7 L2 J  G( y! E" {        s[a]=(b+=s[a]*t)%p,b/=p;
' U& U0 M+ {% I9 [6 Y+ O    for(printf("%d",s[*s]);--*s>0;)printf("%04d",s[*s]);
; t' {2 J: I2 Y    return 0;+ i; x+ O$ O0 w8 Z7 `! L
}
1 A0 D: o$ R, i1 U1 w" A  c# W9 B5 [# N8 Z9 `) m' J
PS. 搜索的,不是我写的% s8 e3 R$ i6 |

6 x+ k7 A$ x9 P0 l5 ^" Q[ 本帖最后由 sort_0010 于 2008-6-5 13:30 编辑 ]
回复

使用道具 举报

发表于 2008-6-6 00:09 | 显示全部楼层
大数乘法很BT的说............. F! z0 n/ L* D" M% ~2 I) D
用字符型存数据得算到什么时候........
& x7 C- d0 n- ^4 `8 C个人觉得得用长整形+指针来做,不过编程太复杂了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-23 05:16

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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