杭电ACM1042,求N!,高手帮我看下
#include"stdio.h"longjiec(intn){inti;longsum=1;if(n==0)returnsum;for(i=1;i<=n;i++)sum...
#include"stdio.h"
long jiec(int n)
{
int i;
long sum=1;
if(n==0) return sum;
for(i=1;i<=n;i++)
sum*=i;
return sum;
}
main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
printf("%ld\n",jiec(n));
}
}
题目在这里面 尽量用C语言
http://acm.hdu.edu.cn/showproblem.php?pid=1042 展开
long jiec(int n)
{
int i;
long sum=1;
if(n==0) return sum;
for(i=1;i<=n;i++)
sum*=i;
return sum;
}
main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
printf("%ld\n",jiec(n));
}
}
题目在这里面 尽量用C语言
http://acm.hdu.edu.cn/showproblem.php?pid=1042 展开
4个回答
展开全部
谁说不能用整型数组,我就给你一个整型数组ac代码:
#include<stdio.h>
int main()
{
int a[10000];
int i,j,c,m,n;
while(scanf("%d",&n)!=EOF){
a[0]=1;
m=0;
for(i=1;i<=n;i++)
{
c=0;
for(j=0;j<=m;j++)
{
a[j]=a[j]*i+c;
c=a[j]/10000;
a[j]=a[j]%10000;
}
if(c>0) {m++;a[m]=c;}
}
printf("%d",a[m]);
for(i=m-1;i>=0;i--) printf("%4.4d",a[i]);
printf("\n");
}
return 0;
}
#include<stdio.h>
int main()
{
int a[10000];
int i,j,c,m,n;
while(scanf("%d",&n)!=EOF){
a[0]=1;
m=0;
for(i=1;i<=n;i++)
{
c=0;
for(j=0;j<=m;j++)
{
a[j]=a[j]*i+c;
c=a[j]/10000;
a[j]=a[j]%10000;
}
if(c>0) {m++;a[m]=c;}
}
printf("%d",a[m]);
for(i=m-1;i>=0;i--) printf("%4.4d",a[i]);
printf("\n");
}
return 0;
}
展开全部
算了~这个大数挺难的,按你现在的实力应该是没希望做出来的,换点别的题做做吧~hint:该题是用字符串做的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大哥! 你用长整型的就够放了吗? 它是10000!长度有想一下多长。。不可以用整型变量放 用字符串 或其他的来存放吧你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-06-20
展开全部
请写出题目页面地址!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询