程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 搜索路上的一把辛酸淚,入門搜索題,路上辛酸淚入門

搜索路上的一把辛酸淚,入門搜索題,路上辛酸淚入門

編輯:關於C語言

搜索路上的一把辛酸淚,入門搜索題,路上辛酸淚入門


第一道獨立做出來的搜索題,雖然很艱難,但畢竟是開始,祝自己早日擺脫題解

沒有難度,只有空格控制和換行需要注意。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int flag[10], a[5], k1, k2, k;
bool found(int yu[])
{
    int i;
    for(i = 0; i < 10; i++)
    {
        if(yu[i]!=0)
            return 0;
    }
    return 1;
}
void ax(int be)
{
    int i, j;
    if(found(flag))
    {
        if(a[0]!=k1&&k2!=0)
        {
            printf("\n");
        }
        if(a[0]==k1)
            printf(" ");
        for(i = 0; i < 4; i++)
            printf("%d",a[i]);
        k1 = a[0];
        k2 = 1;
        return;
    }
    for(i = be; i < 4; i++)
    {
        for(j = 0; j < 10; j++)
        {
            if(i==0&&j==0)
                continue;
            if(flag[j])
            {
                a[i] = j;
                flag[j]--;
                ax(i + 1);
                flag[j]++;
            }
        }
    }
}
int main()
{
    int i, x, y, m, n;
    while(scanf("%d%d%d%d", &x, &y, &m, &n),x!=0||y!=0||m!=0||n!=0)
    {
        if(k != 0)
            printf("\n");
        k = 1;
        k1 = 10;
        k2 = 0;
        memset(flag,0,sizeof(flag));
        memset(a,0,sizeof(a));
        flag[x]++;
        flag[y]++;
        flag[n]++;
        flag[m]++;
        ax(0);
        printf("\n");
    }
    return 0;
}

 

---恢復內容結束---

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved