素數環(簡單的回溯運用)

2021-08-30 21:35:22 字數 490 閱讀 9999

輸入正整數n,把整數1,2,3,…n組成乙個環,使得相鄰兩個整數之和均為素數。輸出時從整數1開始逆時針排列。同乙個環應恰好只輸出一次。n<=16

#include"stdio.h"

int n;

static int vis[17];運用的是靜態性的變數,初值為0;此vis陣列表對應的a陣列中的是否使用

static int a[17];//儲存每一位將排位的數

int isfrime(int x,int y)//判斷,x,y的和是不是素數。

if(s==i)

return 1;

else

return 0;

}int dfs(int k)//這是回溯的最關鍵部分,利用遞迴完成回溯。k為a的下標,當k==n+1了, 則表示a陣列賦值已經到了最後乙個下標值了。

else//繼續給陣列a賦值利用遞迴}}

}int main()

}

素數環 回溯

include stdafx.h include includebool isprime int ijudgednum return false void swap int itemp1,int itemp2 void generateperm int piscr,int isize,int icu...

素數環 回溯

1 2 created by arc on 2020 5 1.3 勞動節快樂!45 6 從一到二十個數擺成乙個環,要求相鄰兩個數的和是素數 包括 和 保證第乙個數為一 要不每個還都要輸出num遍 7 輸出所有環8 9 多工,挨個試,用回溯 回溯也是某種意義上的dfs吧 1011 include 12...

素數環問題(回溯)

素數環問題描述 問題描述 將從1到n這n個整數圍成乙個圓環,若其中任意2個相鄰的數字相加,結果均為素數,那麼這個環就成為素數環。注 第1個位置恒為1 include includeint n 環內元素個數 int p 10 p i 表示第i個位置的元素 p 1 1 第1個位置恒為1 int hash...