2025年幸运26制作过程

幸运26制作过程幸运 26 是一个益智游戏 规则是在每个点上填上 1 12 每个数字只能用一次 使每一条线上数字的和为 26 程序构思 1 输入 2 使用 DFS 遍历 3 输出 DFS 结构 1 边界条件 2 遍历第 i 个数的所有可能 3 进入下一个数 DFS 代码

大家好,我是讯享网,很高兴认识大家。


讯享网

幸运26是一个益智游戏,规则是在每个点上填上1-12,每个数字只能用一次,使每一条线上数字的和为26。

程序构思:

1.输入

2.使用DFS遍历

3.输出

DFS结构:

1.边界条件

2.遍历第i个数的所有可能

3.进入下一个数

DFS代码:

int vis[20],num[20],sum=0;//vis标记数字是否使用过,num存储数字,sum存储总数 void Lucky26(int i)//DFS,i表示第几个数 { if(i>12)//边界条件 { if(num[1]+num[2]+num[4]+num[5]==26&&num[3]+num[4]+num[6]+num[7]==26&&num[5]+num[6]+num[8]+num[9]==26&&num[7]+num[8]+num[10]+num[11]==26&&num[9]+num[10]+num[12]+num[1]==26&&num[11]+num[12]+num[2]+num[3]==26)//如果满足条件,总数+1,输出。 { sum++; for(int j=1;j<=12;j++)printf("%d ",num[j]); printf("\n"); } return; } for(int j=1;j<=12;j++)//遍历所有可能 { if(!vis[j])//判断是否使用过这个数,如果没有,标记使用,进入下一个数。 { num[i]=j; vis[j]=1; Lucky26(i+1); vis[j]=0; } } }

讯享网

main:

讯享网int main() {     memset(vis,0,sizeof(vis));     memset(num,0,sizeof(num));//清除     Lucky26(1);//DFS     printf("幸运26一共有%d种解法",sum);//输出一共有多少种解法     _getch(); }

完整Code:

#include<stdio.h> #include<string.h> #include<conio.h> using namespace std; int vis[20],num[20],sum=0; void Lucky26(int i) { if(i>12) { if(num[1]+num[2]+num[4]+num[5]==26&&num[3]+num[4]+num[6]+num[7]==26&&num[5]+num[6]+num[8]+num[9]==26&&num[7]+num[8]+num[10]+num[11]==26&&num[9]+num[10]+num[12]+num[1]==26&&num[11]+num[12]+num[2]+num[3]==26) { sum++; for(int j=1;j<=12;j++)printf("%d ",num[j]); printf("\n"); } return; } for(int j=1;j<=12;j++) { if(!vis[j]) { num[i]=j; vis[j]=1; Lucky26(i+1); vis[j]=0; } } } int main() { memset(vis,0,sizeof(vis)); memset(num,0,sizeof(num)); Lucky26(1); printf("幸运26一共有%d种解法",sum); _getch(); }

小讯
上一篇 2025-03-30 21:01
下一篇 2025-04-01 17:28

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/24368.html