main()
{int i,m,s=1,a, b;
scanf("%d",&m);
for(i=1;i<=m;i++)
s+=i;
for(a=1;a<=s;a*=10)
if(s%a!=0)
b=s%a;
printf("%d\n",b);
}
为什么这样子不行啊`````输入6能输出2,但输入其它的数,全不对啦`````
[此贴子已经被作者于2006-4-23 10:49:33编辑过]
#include <stdio.h>
#include <conio.h>
int main(void)
{
int ia, ib, ic = 1, id;
scanf("%d", &ia);
for (ib = 1; ib <= ia; ib++)
{
ic *= ib;
}
ic %= 100 ;
if (ic >= 10)
{
if (ic % 10 == 0)
{
id = ic /10 ;
}
else
{
id = ic %10;
}
}
else
{
id = ic %10;
}
printf("id = %d\n", id);
getch();
return 0;
}
#include <stdio.h>
void main()
{
int m,i,s=1;
scanf("%d",&m);
for(i=1;i<=m;i++)
s=s*i;
while(!(s%10))
{
s=s/10;
}
printf("%d",s%10);
getch();
}
数太大的话速度一定慢那要看看数据结构了,还有就是会溢出,还想不出来 现在只能做简单的
[此贴子已经被作者于2006-4-23 17:16:17编辑过]
我用计算器算了一下别说1000的阶乘了,就是20的阶乖已经远远的大于了long整形的最大值了
所以不溢出才怪呢
你要是算1000的阶乖还真是个令人头大的事情
^_^
这个代码不是我想的!
不过真的很帅!
我认为!
同上
#include<stdio.h>
main()
{
long int n,i,j=1;
scanf("%ld",&n);
for(i=n;i>1;i--)
j*=i;
while(j%10==0)
{
j/=10;
}
printf("%d",j%10);
return 0;
}