会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
creativity
To find a kindred spirit is not easy...
博客园
首页
新随笔
管理
hdu 1042 N! 大数
Code
/**/
/*
2008-12-27 18:17:41 Accepted 1042 4203MS 0K 973 B
大数乘整数
*/
#include
<
iostream
>
#define
MOD 100000
//
大数位宽
#define
LN 10000
//
大数数组长度
int
res[LN];
//
存大数
void
mul(
int
n)
//
一个大数乘以一个整数
{
long
sum;
int
p
=
0
;
//
进位数
for
(
int
i
=
LN
-
1
;i
>=
0
;i
--
)
{
sum
=
res[i]
*
n
+
p;
res[i]
=
sum
%
MOD;
p
=
sum
/
MOD;
}
}
void
print(
int
n)
//
输出一个大整数
{
for
(
int
i
=
0
;i
<
LN
&&
!
res[i];i
++
);
printf(
"
%d
"
,res[i
++
]);
for
(;i
<
LN;i
++
)
printf(
"
%05d
"
,res[i]);
puts(
""
);
}
void
make(
int
n)
//
产生结果
{
memset(res,
0
,
sizeof
(res));
res[LN
-
1
]
=
1
;
for
(
int
i
=
2
;i
<=
n;i
++
)
mul(i);
}
int
main()
{
int
n;
while
(scanf(
"
%d
"
,
&
n)
!=
EOF)
{
make(n);
print(n);
}
return
0
;
}
posted @
2008-12-27 19:04
sunjian
阅读(
398
) 评论(
0
)
收藏
举报
刷新页面
返回顶部
公告