4.18今日头条编程题
2017-04-18 22:09
323 查看
1、map解决
2、set解决
3、大模拟,写了近300行,只要不手残一般能写出来吧~
4、不会做,先写了个搜索,然而超内存了,求教~~
1、
2、
3、
4、没过就不贴出来。。
2、set解决
3、大模拟,写了近300行,只要不手残一般能写出来吧~
4、不会做,先写了个搜索,然而超内存了,求教~~
1、
#include<bits/stdc++.h> using namespace std; typedef long long LL; map<int ,int > ma; int main() { int n,m; scanf("%d",&n); for(int i=0;i<n;i++) { int a; scanf("%d",&a); ma[a]++; } scanf("%d",&m); for(int i=0;i<m;i++) { int b; scanf("%d",&b); if(ma[b]==0) { } else { printf("%d ",b); } } return 0; }
2、
#include<bits/stdc++.h> using namespace std; typedef long long LL; set<LL> s; int main() { LL a; while(cin>>a) { if(a==0) { break; } s.insert(a); } cout<<s.size()<<endl; return 0; }
3、
#include<bits/stdc++.h> using namespace std; typedef long long LL; char s[1005]; char ans[100][100]; void work(char c,int x,int y) { if(c=='0') { ans[x][y]=ans[x][y+1]=ans[x][y+2]='*'; ans[x+1][y]='*'; ans[x+1][y+2]='*'; ans[x+2][y]='*'; ans[x+2][y+2]='*'; ans[x+3][y]='*'; ans[x+3][y+2]='*'; ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*'; } else if(c=='1') { ans[x][y]='*'; ans[x+1][y]='*'; ans[x+2][y]='*'; ans[x+3][y]='*'; ans[x+4][y]='*'; } else if(c=='2') { ans[x][y]=ans[x][y+1]=ans[x][y+2]='*'; ans[x+1][y+2]='*'; ans[x+2][y]='*'; ans[x+2][y+1]='*'; ans[x+2][y+2]='*'; ans[x+3][y]='*'; ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*'; } else if(c=='3') { ans[x][y]=ans[x][y+1]=ans[x][y+2]='*'; ans[x+1][y+2]='*'; ans[x+2][y]='*'; ans[x+2][y+1]='*'; ans[x+2][y+2]='*'; ans[x+3][y+2]='*'; ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*'; } else if(c=='4') { ans[x][y]=ans[x][y+2]='*'; ans[x+1][y]='*'; ans[x+1][y+2]='*'; ans[x+2][y]='*'; ans[x+2][y+1]='*'; ans[x+2][y+2]='*'; ans[x+3][y+2]='*'; ans[x+4][y+2]='*'; } else if(c=='5') { ans[x][y]=ans[x][y+1]=ans[x][y+2]='*'; ans[x+1][y]='*'; ans[x+2][y]='*'; ans[x+2][y+1]='*'; ans[x+2][y+2]='*'; ans[x+3][y+2]='*'; ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*'; } else if(c=='6') { ans[x][y]=ans[x][y+1]=ans[x][y+2]='*'; ans[x+1][y]='*'; ans[x+2][y]='*'; ans[x+2][y+1]='*'; ans[x+2][y+2]='*'; ans[x+3][y]='*'; ans[x+3][y+2]='*'; ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*'; } else if(c=='7') { ans[x][y]=ans[x][y+1]=ans[x][y+2]='*'; ans[x+1][y+2]='*'; ans[x+2][y+2]='*'; ans[x+3][y+2]='*'; ans[x+4][y+2]='*'; } else if(c=='8') { ans[x][y]=ans[x][y+1]=ans[x][y+2]='*'; ans[x+1][y]='*'; ans[x+1][y+2]='*'; ans[x+2][y]='*'; ans[x+2][y+1]='*'; ans[x+2][y+2]='*'; ans[x+3][y]='*'; ans[x+3][y+2]='*'; ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*'; } else if(c=='9') { ans[x][y]=ans[x][y+1]=ans[x][y+2]='*'; ans[x+1][y]='*'; ans[x+1][y+2]='*'; ans[x+2][y]='*'; ans[x+2][y+1]='*'; ans[x+2][y+2]='*'; ans[x+3][y+2]='*'; ans[x+4][y]=ans[x+4][y+1]=ans[x+4][y+2]='*'; } else if(c=='+') { ans[x+1][y+1]='*'; ans[x+2][y]=ans[x+2][y+1]=ans[x+2][y+2]='*'; ans[x+3][y+1]='*'; } else if(c=='-') { ans[x+2][y]=ans[x+2][y+1]=ans[x+2][y+2]='*'; } else if(c=='*') { ans[x+1][y]=ans[x+1][y+2]='*'; ans[x+2][y+1]='*'; ans[x+3][y]=ans[x+3][y+2]='*'; } else if(c=='/') { ans[x+1][y+2]='*'; ans[x+2][y+1]='*'; ans[x+3][y]='*'; } else if(c=='=') { ans[x+1][y]=ans[x+1][y+1]=ans[x+1][y+2]=ans[x+1][y+3]='*'; ans[x+3][y]=ans[x+3][y+1]=ans[x+3][y+2]=ans[x+3][y+3]='*'; } else if(c=='.') { ans[x+3][y]=ans[x+3][y+1]='*'; ans[x+4][y]=ans[x+4][y+1]='*'; } } int main() { gets(s); int len=strlen(s); for(int i=0; i<100; i++) { for(int j=0; j<100; j++) { ans[i][j]=' '; } } int a=0,b=0; int pos; char c; for(int i=0; i<len; i++) { if(s[i]==' ') { pos=i; break; } a=a*10+(s[i]-'0'); } for(int i=pos; i<len; i++) { if(s[i]>='0'&&s[i]<='9') { b=b*10+(s[i]-'0'); } } c=s[pos+1]; int sum; s[len++]='='; char ss[10]; if(c=='+') { sum=a+b; sprintf(ss,"%d",sum); for(int i=0; i<strlen(ss); i++) { s[len++]=ss[i]; } s[len]=0; } else if(c=='-') { sum=a-b; sprintf(ss,"%d",sum); for(int i=0; i<strlen(ss); i++) { s[len++]=ss[i]; } s[len]=0; } else if(c=='*') { sum=a*b; sprintf(ss,"%d",sum); for(int i=0; i<strlen(ss); i++) { s[len++]=ss[i]; } s[len]=0; } else if(c=='/') { if(a%b==0) { sum=a/b; sprintf(ss,"%d",sum); for(int i=0; i<strlen(ss); i++) { s[len++]=ss[i]; } s[len]=0; } else { double f=a*1.0/b; sprintf(ss,"%.2f",f); for(int i=0; i<strlen(ss); i++) { s[len++]=ss[i]; } s[len]=0; } } int x=0,y=0; for(int i=0; i<len; i++) { work(s[i],x,y); if(s[i]==' ') { continue; } if(s[i]=='1') { y+=3; } else if(s[i]=='=') { y+=6; } else if(s[i]=='.') { y+=4; } else { y+=5; } } for(int i=0; i<x+6; i++) { for(int j=0; j<y; j++) { printf("%c",ans[i][j]); } printf("\n"); } return 0; }
4、没过就不贴出来。。
相关文章推荐
- 【算法】今日头条2017编程题
- 【算法题】2018今日头条编程题二
- 今日头条2018校招算法方向(第一批)编程题1(离散+树状数组)
- 今日头条编程题 专辑问题
- 今日头条校招2016-09-28在线编程题(2题)
- 今日头条——校招在线编程题《字典序》
- 今日头条2018校招算法方向(第一批)编程题2(枚举)
- 今日头条2018校园招聘后端开发工程师(第四批)编程题 - 题解
- 今日头条2018春季校园招聘研发岗位笔试编程题1
- 今日头条2017校园招聘 春招4.18笔试
- 今日头条笔试【编程题 + 分析过程发现数学规律 + 回溯法】
- 今日头条2017暑期实习生招聘笔试编程题之函数最宽尖峰
- 【算法题】2018今日头条编程题一
- 今日头条2017校招编程题
- String Shifting- 今日头条校招2016-09-28在线编程题
- [编程题] 木棒拼图(今日头条招聘)
- 2017今日头条测试编程题
- 今日头条编程题 - 珠子颜色【窗口滑动】
- 今日头条2018校招测试开发方向(第一、二、三、四批)编程题汇总 - 题解
- 今日头条2018春季校园招聘研发岗位笔试编程题2