• 约瑟夫环-我的解答与迷宫


     1 #include<iostream>
     2 using namespace std;
     3 
     4 typedef int ElemType;
     5 typedef struct LNode
     6 {
     7     ElemType data1;
     8     ElemType data2;
     9     struct LNode *next;
    10 }LNode,*LinkList;
    11 LinkList CreateList(int n)
    12 {
    13     LinkList head,s;
    14     s=head=(LinkList)malloc(sizeof(LNode));
    15     for(int i=1;i<n;i++)
    16     {
    17         s->data1=i;
    18         cout<<"Please input cipher:";
    19         cin>>s->data2;
    20         if(s->data2<=0)
    21         {
    22             cout<<"Please input the cipher again:"<<endl;
    23             cin>>s->data2;
    24         }
    25         s->next=(LinkList)malloc(sizeof(LNode));
    26         s=s->next;
    27     }
    28     s->data1=i;
    29     cout<<"Please input cipher:"<<endl;
    30     cin>>s->data2;
    31     s->next=head;
    32     return s;
    33 }
    34 
    35 LinkList findLNode(int m,LinkList s)
    36 {
    37     for(int i=1;i<m;i++)
    38         s=s->next;
    39     return s;
    40 }
    41 
    42 void main()
    43 {
    44     int m,n;
    45     cout<<"Please input n:"<<endl;
    46     cin>>n;
    47     cout<<"Please input m:"<<endl;
    48     cin>>m;
    49     LinkList p,q;
    50     p=CreateList(n);
    51 
    52     for(int i=0;i<n;i++)
    53     {
    54         p=findLNode(m,p);
    55         cout<<p->next->data1<<" ";
    56         m=p->next->data2;
    57         q=p->next;
    58         p->next=q->next;
    59         //p->next=q->next;
    60         free(q);
    61         //p=p->next;
    62         
    63     }
    64 }
     1 #include<stdio.h>
     2 #include <stdlib.h> 
     3 
     4 int visit(int, int); 
     5 
     6 int maze[7][7] = {{2, 2, 2, 2, 2, 2, 2}, 
     7 {2, 0, 0, 0, 0, 0, 2}, 
     8 {2, 0, 2, 0, 2, 0, 2}, 
     9 {2, 0, 0, 2, 0, 2, 2}, 
    10 {2, 2, 0, 2, 0, 2, 2}, 
    11 {2, 0, 0, 0, 0, 0, 2}, 
    12 {2, 2, 2, 2, 2, 2, 2}}; 
    13 
    14 int startI = 1, startJ = 1; // 入口
    15 int endI = 5, endJ = 5; // 出口
    16 int success = 0;
    17 
    18 int main(void) { 
    19 int i, j; 
    20 
    21 printf("顯示迷宮:
    "); 
    22 for(i = 0; i < 7; i++) { 
    23 for(j = 0; j < 7; j++) 
    24 if(maze[i][j] == 2) 
    25 printf(""); 
    26 else 
    27 printf(" "); 
    28 printf("
    "); 
    29 } 
    30 
    31 if(visit(startI, startJ) == 0)
    32 printf("
    沒有找到出口!
    "); 
    33 else { 
    34 printf("
    顯示路徑:
    "); 
    35 for(i = 0; i < 7; i++) { 
    36 for(j = 0; j < 7; j++) { 
    37 if(maze[i][j] == 2) 
    38 printf(""); 
    39 else if(maze[i][j] == 1) 
    40 printf(""); 
    41 else 
    42 printf(" "); 
    43 } 
    44 printf("
    "); 
    45 } 
    46 } 
    47 
    48 return 0; 
    49 } 
    50 
    51 int visit(int i, int j) { 
    52 maze[i][j] = 1; 
    53 
    54 if(i == endI && j == endJ)
    55 success = 1; 
    56 
    57 if(success != 1 && maze[i][j+1] == 0) visit(i, j+1); 
    58 if(success != 1 && maze[i+1][j] == 0) visit(i+1, j); 
    59 if(success != 1 && maze[i][j-1] == 0) visit(i, j-1); 
    60 if(success != 1 && maze[i-1][j] == 0) visit(i-1, j); 
    61 
    62 if(success != 1) 
    63 maze[i][j] = 0; 
    64 
    65 return success; 
    66 }
     1 #include<stdio.h>
     2 #include <stdlib.h> 
     3 int visit(int, int); 
     4 int maze[7][7] = {{2, 2, 2, 2, 2, 2, 2}, 
     5 {2, 0, 0, 0, 0, 0, 2}, 
     6 {2, 0, 2, 0, 2, 0, 2}, 
     7 {2, 0, 0, 2, 0, 2, 2}, 
     8 {2, 2, 0, 2, 0, 2, 2}, 
     9 {2, 0, 0, 0, 0, 0, 2}, 
    10 {2, 2, 2, 2, 2, 2, 2}}; 
    11 
    12 int startI = 1, startJ = 1; // 入口
    13 int endI = 5, endJ = 5; // 出口
    14 int success = 0;
    15 
    16 int main(void) { 
    17 int i, j; 
    18 
    19 printf("顯示迷宮:
    "); 
    20 for(i = 0; i < 7; i++) { 
    21 for(j = 0; j < 7; j++) 
    22 if(maze[i][j] == 2) 
    23 printf(""); 
    24 else 
    25 printf(" "); 
    26 printf("
    "); 
    27 } 
    28 
    29 if(visit(startI, startJ) == 0)
    30 printf("
    沒有找到出口!
    "); 
    31 else { 
    32 printf("
    顯示路徑:
    "); 
    33 for(i = 0; i < 7; i++) { 
    34 for(j = 0; j < 7; j++) { 
    35 if(maze[i][j] == 2) 
    36 printf(""); 
    37 else if(maze[i][j] == 1) 
    38 printf(""); 
    39 else 
    40 printf(" "); 
    41 } 
    42 printf("
    "); 
    43 } 
    44 } 
    45 
    46 return 0; 
    47 } 
    48 
    49 int visit(int i, int j) { 
    50 maze[i][j] = 1; 
    51 
    52 if(i == endI && j == endJ)
    53 success = 1; 
    54 
    55 if(success != 1 && maze[i][j+1] == 0) visit(i, j+1); 
    56 if(success != 1 && maze[i+1][j] == 0) visit(i+1, j); 
    57 if(success != 1 && maze[i][j-1] == 0) visit(i, j-1); 
    58 if(success != 1 && maze[i-1][j] == 0) visit(i-1, j); 
    59 
    60 if(success != 1) 
    61 maze[i][j] = 0; 
    62 
    63 return success; 
    64 }
  • 相关阅读:
    JS基础语法---函数练习part3---4个练习
    JS基础语法---函数练习part2---10个综合练习(运用:循环/数组/函数)
    JS基础语法---函数练习part1---5个练习
    JS基础语法---函数---介绍、定义、函数参数、返回值
    JS基础语法---冒泡顺序
    JS基础语法---数组案例---9个练习
    JS基础语法---for循环遍历数组
    Python小技巧:使用一行命令把你的电脑变成服务器
    目前最全的Python的就业方向
    这十个Python常用库,学习Python的你必须要知道!
  • 原文地址:https://www.cnblogs.com/Zblogs/p/3362054.html
Copyright © 2020-2023  润新知