【openjudge 计算概论(A)】[函数递归练习(2)]
来源:互联网 发布:中国历年国防支出数据 编辑:程序博客网 时间:2024/04/30 08:04
1:括号匹配问题
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char s[110];int len,d[110],t;bool p[110];int main(){while((scanf("%s",s+1))==1) { printf("%s\n",s+1); memset(p,0,sizeof(p)); len=strlen(s+1); t=0; for(int i=1;i<=len;++i) if(s[i]=='(') { d[++t]=i; p[i]=1; } else if(s[i]==')') if(t) p[d[t--]]=0; else p[i]=1;for(int i=1;i<=len;++i) if(p[i]) if(s[i]=='(') printf("$"); else printf("?"); else printf(" ");printf("\n"); }return 0;}
2:输出二进制补码
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char s[50];int num[40],tot;long long n;int main(){//freopen("int.txt","r",stdin);//freopen("my.txt","w",stdout);int i;while(1){ scanf("%s",s);if((s[0]<48||s[0]>57)&&s[0]!='-') break;int len=strlen(s);memset(num,0,sizeof(num)); tot=0;if(s[0]!='-') { for(i=0;i<len;++i) n=n*10+s[i]-48; while(n) num[++tot]=n%2,n/=2; for(i=32;i>0;--i) printf("%d",num[i]); printf("\n"); }else { for(i=1;i<len;++i) n=n*10+s[i]-48; while(n) num[++tot]=n%2,n/=2; tot=1; for(i=32;i>0;--i) num[i]^=1; while(num[tot]) num[tot++]=0; num[tot]=1; for(i=32;i>0;--i) printf("%d",num[i]); printf("\n"); }} return 0;}
3:汉诺塔问题
#include<cstdio>using namespace std;char ch[5];int n;void dfs(int t,int a,int b,int c){if(t==1) { printf("%c->1->%c\n",ch[a],ch[c]); return; }dfs(t-1,a,c,b); printf("%c->%d->%c\n",ch[a],t,ch[c]); dfs(t-1,b,a,c);}int main(){scanf("%d %c %c %c",&n,&ch[1],&ch[2],&ch[3]);dfs(n,1,3,2);return 0;}
4:流感传染
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char ch[110][110];int d1[4][2]={{-1,0},{1,0},{0,-1},{0,1}};int d[10010][2],h,t,n,T;int main(){int i,j;scanf("%d",&n);for(i=1;i<=n;++i) { getchar(); for(j=1;j<=n;++j) { scanf("%c",&ch[i][j]); if(ch[i][j]=='@') {d[++t][0]=i; d[t][1]=j;} } } scanf("%d",&T); T--;while(T--) { int last=t; if(h>t) break; do { int x=d[++h][0],y=d[h][1]; for(j=0;j<4;++j) { int xx=x+d1[j][0],yy=y+d1[j][1]; if(xx>0&&xx<=n&&yy>0&&yy<=n&&ch[xx][yy]=='.') { ch[xx][yy]='@'; d[++t][0]=xx; d[t][1]=yy;} } }while(h<last); }printf("%d\n",t);return 0;}
0 0
- 【openjudge 计算概论(A)】[函数递归练习(2)]
- 【openjudge 计算概论(A)】[函数递归练习(4)]
- 【openjudge 计算概论(A)】[函数递归练习(3)]
- 【openjudge 计算概论(A)】[函数递归练习(1)]
- 【openjudge 计算概论(A)】[指针练习]
- 【openjudge 计算概论(A)】[基础编程练习2]
- 【openjudge 计算概论(A)】[ 函数与字符串练习(2)]
- 【openjudge 计算概论(A)】[编程练习(数组练习)]
- 【openjudge 计算概论(A)】[编程练习(字符串)]
- 【openjudge 计算概论(A)】[基础编程练习1]
- 【openjudge 计算概论(A)】[函数与字符串练习(1)]
- openjudge 计算概论 函数与字符串练习(1)2:字符串排序
- 【openjudge 计算概论(A)】[基础编程练习(控制成分)]
- 【openjudge 计算概论(A)】[基础编程练习(运算成分)]
- 【openjudge 计算概论(A)】[基础编程练习(数据成分)]
- 【openjudge 计算概论(A)】[结构体与链表练习]
- openjudge 计算概论基础编程练习(控制成分)
- 计算概论(A) / 函数与字符串练习(2)2:DNA排序
- 第七周项目六 停车场模拟
- 开机自启动
- 二叉搜索树的后序遍历序列
- 理解矩阵
- 内核设备模型分析
- 【openjudge 计算概论(A)】[函数递归练习(2)]
- JSON与XML的区别比较
- Shiro登录成功之后跳到指定URL
- JSP/HTML页面弹出框
- 深度学习中的数学与技巧(6): 详解协方差与协方差矩阵计算
- 第八周项目2——建立链串的算法库
- EDIUS是怎么制作快节奏字幕的
- 第八周 项目3顺序串算法(2)倒序排列
- Thinkphp5 表单提交额外参数和页面跳转参数传递