解题思路:
注意事项:
参考代码:
//由数学知识可知,有n-1的阶乘种可能,真的吗?(其实是错误的,可以写一下,但不知为啥能过编译,很神奇)
#include
int main ()
{
int n;
while(scanf("%d",&n)!=EOF){
int sum=1;
n--;
while(n){sum*=n;n--;}
printf ("%d\n",sum);
}
return 0;
}
正确代码如下,递归思路
实例
1
0
2
1
3
2
4
9
5
44
6
265
7
1854
8
14833
9
133496
#include<stdio.h>
int n,sum=0;
int people[100];
void swap(int k,int i)
{
int temp=people[k];
people[k]=people[i];
people[i]=temp;
}
void qurt_sort(int k )
{
if(k==n)
{
for(int i=1;i<=n;i++)
if(people[i]==i)
{
goto part;
}
/* for(int i=1;i<=n;i++)
printf("%d ",people[i]);
printf("\n");*/
sum++;
part: ;
}
else
{
for(int i=k;i<=n;i++)
{
swap(k,i);
qurt_sort(k+1);
swap(k,i);
}
}
}
int main ()
{
while(scanf("%d",&n)!=EOF)
{
for(int i=1;i<=n;i++)
people[i]=i;
qurt_sort(1);
printf("%d\n",sum);
sum=0;
}
return 0;
}
0.0分
0 人评分
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:582 |
C语言训练-亲密数 (C语言代码)浏览:682 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:1067 |
字符串输入输出函数 (C语言代码)浏览:2479 |
时间转换 (C语言代码)浏览:624 |
C二级辅导-统计字符 (C语言代码)浏览:627 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:535 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:713 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:568 |
陶陶摘苹果2 (C++代码)浏览:537 |