2008
01-26

有九个整数(1—9),一共有9!种排列顺序的方法,例如:123456789、213456789、231456789…….请问如何编程实现将这些排列好的数输出来?


 


请高手指教》有 10 条评论

  1. 天马行空 说:

    #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);
    }

  2. SimonSworD 说:

    全排列问题.. 用递归做..

    楼上够狠.. – - .

  3. 倒影年华 说:

      递归  该怎么做  和循环嵌套  一样吗

  4. SimonSworD 说:

    递归和循环嵌套当然差很多… 前者适用面更广… 很多基本数据结构的算法也都是递归的..

    建议可以去写一下八皇后问题就知道递归的伟大了..

  5. 吴自强198542 说:

    不是这样吗

    #include<stdio.h>

    main()

    {

    printf(“123456789\n”);

    printf(“213456789\n”);

    printf(“213456789\n”);……;}

     

  6. 凉州愚叟 说:

    [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]

  7. feiniaoeye 说:

    #include”stdio.h”

    main()

    {

    printf(“1.start”);

    printf(“2.option”);

    }

    学习C时编了第一个程序就出现了,

    “is up to date”

    哪位大虾能指点下.

  8. ridiculous 说:

    递归就是不断地调用自身。。

  9. SimonSworD 说:

    [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型..

留下一个回复