如题所述
æè·¯ï¼å®ä¹ä¸ä¸ªå½æ°funï¼nï¼æ±nçé¶ä¹ï¼æ¥çé®çè¾å ¥ä¸ä¸ªæ´æ°ï¼è°ç¨funå½æ°è¾åºè¯¥æ°çé¶ä¹ã
åè代ç ï¼
#include"stdio.h"long fun(int n){
long sum =1;
int i;
for(i=2;i<=n;i++)
sum*=i;
return sum;
}
int main()
{
int n;
scanf("%d",&n);
printf("%ld",fun(n));
return 0;
}
/*
è¿è¡ç»æï¼
10
3628800
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-04-13
#include <stdio.h>
int main(void)
{
int i,n,m;
scanf("%d",&n);
m=1;
for(i=n;i>1;i--){
m*=i;
}
printf("%d\n",m);
return 0;
}本回答被网友采纳
int main(void)
{
int i,n,m;
scanf("%d",&n);
m=1;
for(i=n;i>1;i--){
m*=i;
}
printf("%d\n",m);
return 0;
}本回答被网友采纳
第2个回答 2015-04-13
#include<stdio.h>
#include<stdlib.h>
typedef struct {
char ch[2569];
int len;
}NumToChar;
void multiply(NumToChar* temp1,NumToChar* temp2)
{
int i,j,p=0,n,x,y,count=0;
NumToChar* temp=(NumToChar*)malloc(sizeof(NumToChar));
for(i=0;i<2569;i++)
{
temp->ch[i]='0';
}
temp->len=0;
for(i=0;i<temp2->len;i++)
{
p=0;
count=i;
for(j=0;j<temp1->len;j++)
{
x=temp1->ch[j]-'0';
y=temp2->ch[i]-'0';
n=x*y+p+temp->ch[count]-'0';
temp->ch[count++]=n%10+'0';
p=n/10;
}
n=temp->ch[count]+p-'0';
if(n/10){
temp->ch[count++]=n%10+'0';
temp->ch[count]=n/10+'0';
}
else
if(n!=0)temp->ch[count]=n+'0';
else count--;
}
temp->len=count+1;
for(i=0;i<temp->len;i++)
{
temp1->ch[i]=temp->ch[i];
}
temp1->len=temp->len;
}
void conversion(int i,NumToChar* pch)
{
int temp,m=0,count=0;
while(i!=0)
{
temp=i%10;
pch->ch[m++]=temp+'0';
i=i/10;
count++;
}
pch->len=count;
}
int main()
{
int i;
NumToChar ch1;
NumToChar ch2;
ch1.len=0;
ch2.len=0;
while(1){
for(i=0;i<2569;i++)
{
ch1.ch[i]='0';
ch2.ch[i]='0';
}
conversion(1000,&ch1);
int j;
scanf("%d",&j);
for(i=999;i>=j;i--)
{
conversion(i,&ch2);
multiply(&ch1,&ch2);
}
int count=0;
for(i=ch1.len-1;i>=0;i--)
{
if(ch1.ch[i]=='0')count++;
printf("%c",ch1.ch[i]);
}
printf("\n%d %d\n",ch1.len,count);
}
return 1;
}
#include<stdlib.h>
typedef struct {
char ch[2569];
int len;
}NumToChar;
void multiply(NumToChar* temp1,NumToChar* temp2)
{
int i,j,p=0,n,x,y,count=0;
NumToChar* temp=(NumToChar*)malloc(sizeof(NumToChar));
for(i=0;i<2569;i++)
{
temp->ch[i]='0';
}
temp->len=0;
for(i=0;i<temp2->len;i++)
{
p=0;
count=i;
for(j=0;j<temp1->len;j++)
{
x=temp1->ch[j]-'0';
y=temp2->ch[i]-'0';
n=x*y+p+temp->ch[count]-'0';
temp->ch[count++]=n%10+'0';
p=n/10;
}
n=temp->ch[count]+p-'0';
if(n/10){
temp->ch[count++]=n%10+'0';
temp->ch[count]=n/10+'0';
}
else
if(n!=0)temp->ch[count]=n+'0';
else count--;
}
temp->len=count+1;
for(i=0;i<temp->len;i++)
{
temp1->ch[i]=temp->ch[i];
}
temp1->len=temp->len;
}
void conversion(int i,NumToChar* pch)
{
int temp,m=0,count=0;
while(i!=0)
{
temp=i%10;
pch->ch[m++]=temp+'0';
i=i/10;
count++;
}
pch->len=count;
}
int main()
{
int i;
NumToChar ch1;
NumToChar ch2;
ch1.len=0;
ch2.len=0;
while(1){
for(i=0;i<2569;i++)
{
ch1.ch[i]='0';
ch2.ch[i]='0';
}
conversion(1000,&ch1);
int j;
scanf("%d",&j);
for(i=999;i>=j;i--)
{
conversion(i,&ch2);
multiply(&ch1,&ch2);
}
int count=0;
for(i=ch1.len-1;i>=0;i--)
{
if(ch1.ch[i]=='0')count++;
printf("%c",ch1.ch[i]);
}
printf("\n%d %d\n",ch1.len,count);
}
return 1;
}