• 成长轨迹57 【ACM算法之路 百炼poj.grids.cn】【递归】【2754、2816、2753、】


    2754:八皇后

     1 #include <stdio.h>
    2
    3 int ans[92][8],temp[8],num;
    4 void deal(int i)
    5 {
    6 if(i==8)
    7 {
    8 for(int k=0;k<8;k++)
    9 ans[num][k]=temp[k];
    10 num++;
    11 return;
    12 }
    13 for(int j=0;j<8;j++)
    14 {
    15 int k;
    16 for(k=0;k<i;k++)
    17 {
    18 if(temp[k]==j||k-i==temp[k]-j||i-k==temp[k]-j)
    19 break;
    20 }
    21 if(k==i)
    22 {
    23 temp[i]=j;
    24 deal(i+1);
    25 }
    26 }
    27 }
    28
    29 int main()
    30 {
    31 int n;
    32 scanf("%d",&n);
    33 num=0;
    34 deal(0);
    35 for(int i=0;i<n;i++)
    36 {
    37 int a;
    38 scanf("%d",&a);
    39 for(int j=0;j<8;j++)
    40 printf("%d",ans[a-1][j]+1);//【不然会出来0】
    41 printf("\n");
    42 }
    43 return 0;
    44 }



    2816:红与黑
     

     1 #include <stdio.h>
    2
    3 int w,h;
    4 char area[21][21];
    5 int deal(int x,int y)
    6 {
    7 if(x<0||x>=w||y<0||y>=h)
    8 return 0;
    9 else if(area[x][y]=='#')
    10 return 0;
    11 else
    12 {
    13 area[x][y]='#';
    14 return 1+deal(x-1,y)+deal(x+1,y)+deal(x,y-1)+deal(x,y+1);
    15 }
    16 }
    17
    18 int main()
    19 {
    20 while(scanf("%d %d",&h,&w),w!=0&&h!=0)//【注意这里的wh的顺序】
    21 {
    22 int nx=0,ny=0;
    23 for(int i=0;i<w;i++)
    24 {
    25 for(int j=0;j<h;j++)
    26 {
    27 char c;
    28 scanf("%c",&c);
    29 if(c!='\n'&&c!='\0'&&c!=' ')
    30 area[i][j]=c;
    31 else
    32 j--;
    33 if(area[i][j]=='@')
    34 {
    35 nx=i;
    36 ny=j;
    37 }
    38 }
    39 }
    40 printf("%d\n",deal(nx,ny));
    41
    42 }
    43 return 0;
    44 }


    2753:菲波那契数列

     1 #include <stdio.h>
    2
    3 int deal(int a)
    4 {
    5 if(a==1||a==2)
    6 return 1;
    7 return deal(a-1)+deal(a-2);
    8 }
    9
    10 int main()
    11 {
    12 int n;
    13 scanf("%d",&n);
    14 for(int i=0;i<n;i++)
    15 {
    16 int a;
    17 scanf("%d",&a);
    18 printf("%d\n",deal(a));
    19 }
    20 return 0;
    21 }
  • 相关阅读:
    页面上有10个多选框,实现三个按钮(重置、反选、全选)功能
    鼠标点哪 哪出15*15的圆型div
    es写简单的留言板
    面试准备(3)事件循环
    面试准备(2)async+await的使用与原理
    面试准备(1)重排与重绘和验证码
    vue项目修改el-input样式
    echarts画雷达图详解
    决心
    国庆中秋
  • 原文地址:https://www.cnblogs.com/zeedmood/p/2367801.html
Copyright © 2020-2023  润新知