X 我知道了TIPS:左右滑动导航栏可以查看更多栏目
有九个整数(1—9),一共有9!种排列顺序的方法,例如:123456789、213456789、231456789…….请问如何编程实现将这些排列好的数输出来?
>> 本文固定链接: http://www.vcgood.com/archives/2115
>> 转载请注明: 天马行空 2008年01月26日 于 C语言帝国 发表
#include “stdio.h”void main(){ int a,b,c,d,e,f,g,h,i; for(a=1;a<=9;a++) for(b=1;b<=9;b++) for(c=1;c<=9;c++) for(d=1;d<=9;d++) for(e=1;e<=9;e++) for(f=1;f<=9;f++) for(g=1;g<=9;g++) for(h=1;h<=9;h++) for(i=1;i<=9;i++) if(a*b*c*d*e*f*g*h*i==362880) printf(“%d %d %d %d %d %d %d %d %d\n”,a,b,c,d,e,f,g,h,i);}
全排列问题.. 用递归做..
楼上够狠.. – - .
递归 该怎么做 和循环嵌套 一样吗
递归和循环嵌套当然差很多… 前者适用面更广… 很多基本数据结构的算法也都是递归的..
建议可以去写一下八皇后问题就知道递归的伟大了..
不是这样吗
#include<stdio.h>
main()
{
printf(“123456789\n”);
printf(“213456789\n”);
printf(“213456789\n”);……;}
[code]#include "stdio.h"int main() ****这儿注意是int型的
{ int a,b,c,d,e,f,g,h,i; for(a=1;a<=9;a++) for(b=1;b<=9;b++) for(c=1;c<=9;c++) for(d=1;d<=9;d++) for(e=1;e<=9;e++) for(f=1;f<=9;f++) for(g=1;g<=9;g++) for(h=1;h<=9;h++) for(i=1;i<=9;i++) if(a*b*c*d*e*f*g*h*i==362880) ****这儿不明白为什么是362880?
printf("%d %d %d %d %d %d %d %d %d\n",a,b,c,d,e,f,g,h,i);}[/code]
#include”stdio.h”
printf(“1.start”);
printf(“2.option”);
}
学习C时编了第一个程序就出现了,
“is up to date”
哪位大虾能指点下.
递归就是不断地调用自身。。
[QUOTE=凉州愚叟]
[/QUOTE]
362880 = 9!
现在大多C编译器默认main为int型.. 当然有些规定为void型..
你必须先 登录才能发表评论。
#include “stdio.h”
void main()
{
int a,b,c,d,e,f,g,h,i;
for(a=1;a<=9;a++)
for(b=1;b<=9;b++)
for(c=1;c<=9;c++)
for(d=1;d<=9;d++)
for(e=1;e<=9;e++)
for(f=1;f<=9;f++)
for(g=1;g<=9;g++)
for(h=1;h<=9;h++)
for(i=1;i<=9;i++)
if(a*b*c*d*e*f*g*h*i==362880) printf(“%d %d %d %d %d %d %d %d %d\n”,a,b,c,d,e,f,g,h,i);
}
全排列问题.. 用递归做..
楼上够狠.. – - .
递归 该怎么做 和循环嵌套 一样吗
递归和循环嵌套当然差很多… 前者适用面更广… 很多基本数据结构的算法也都是递归的..
建议可以去写一下八皇后问题就知道递归的伟大了..
不是这样吗
#include<stdio.h>
main()
{
printf(“123456789\n”);
printf(“213456789\n”);
printf(“213456789\n”);……;}
[code]#include "stdio.h"
int main() ****这儿注意是int型的
{
int a,b,c,d,e,f,g,h,i;
for(a=1;a<=9;a++)
for(b=1;b<=9;b++)
for(c=1;c<=9;c++)
for(d=1;d<=9;d++)
for(e=1;e<=9;e++)
for(f=1;f<=9;f++)
for(g=1;g<=9;g++)
for(h=1;h<=9;h++)
for(i=1;i<=9;i++)
if(a*b*c*d*e*f*g*h*i==362880) ****这儿不明白为什么是362880?
printf("%d %d %d %d %d %d %d %d %d\n",a,b,c,d,e,f,g,h,i);
}[/code]
#include”stdio.h”
main()
{
printf(“1.start”);
printf(“2.option”);
}
学习C时编了第一个程序就出现了,
“is up to date”
哪位大虾能指点下.
递归就是不断地调用自身。。
[QUOTE=凉州愚叟]
[code]#include "stdio.h"
int main() ****这儿注意是int型的
{
int a,b,c,d,e,f,g,h,i;
for(a=1;a<=9;a++)
for(b=1;b<=9;b++)
for(c=1;c<=9;c++)
for(d=1;d<=9;d++)
for(e=1;e<=9;e++)
for(f=1;f<=9;f++)
for(g=1;g<=9;g++)
for(h=1;h<=9;h++)
for(i=1;i<=9;i++)
if(a*b*c*d*e*f*g*h*i==362880) ****这儿不明白为什么是362880?
printf("%d %d %d %d %d %d %d %d %d\n",a,b,c,d,e,f,g,h,i);
}[/code]
[/QUOTE]
362880 = 9!
现在大多C编译器默认main为int型.. 当然有些规定为void型..