最近见到的一些2017年的名企校招题
来源:互联网 发布:最优化理论与方法pdf 编辑:程序博客网 时间:2024/06/01 17:15
#include <stdlib.h>#include <stdio.h>#include <iostream>#include <string.h>#include <vector>#include <numeric>#include <algorithm>using namespace std;#if 0long fibonacci1(int n){ if(n<=2) return 1; else { long num1=1; long num2=1; for(int i=2; i<n-1; i++) { num2=num1+num2; num1=num2-num1; } return num1+num2; }}int fibonacci(int n) ///递归求解的时间复杂度为o(n){ cout<<"calculating "<<n<<endl; if (n<=0) { return 0; } if (n==1) { return 1; } return fibonacci(n-1)+fibonacci(n-2);}long fibonacci2(int n){ if(n<=0) { return 0; } if(n==1) { return 1; } int min=0; int max=1; int i=2; int result=0; while(i<=n) { result=min+max; min=max; max=result; ++i; } return result;}int main(int argc,char *argv){ int N; cin>>N; cout<<fibonacci(N)<<endl; return 0;}#endif#if 0 ///十进制和十二进制的转换(华为17年校招)void solve(int num);int main(){ int num; while(cin>>num) { solve(num); } return 0;}void solve(int num){ if(num==0) { cout<<"0"<<endl; return; } char c; vector<char> s; while(num) { if(num%12==10) { c='A'; } else if(num%12==11) { c='B'; } else { c=num%12+'0'; } s.push_back(c); num=num/12; } vector<char>::iterator vi; for(vi=s.end()-1; vi>=s.begin(); vi--) { cout<<(*vi); } cout<<endl; return;}#endif#if 0 ///缘分匹配(华为17年校招)int main(int argc,char *argv){ int N,M; int i,j; cin>>N; M=2*N; int array[50]= {0}; int man[20]= {0}; int man_var=0; int woman[20]= {0}; int woman_var=0; int totel; for(i=0; i<M; i++) { cin>>array[i]; } for(i=0; i<M; i++) { man_var +=array[i]; man[i] = man_var; } printf("man "); for(i=0; i<M; i++) { printf("man[i]=%d ",man[i]); } printf("\n"); for(j=M-1; j>=0; j--) { woman_var +=array[j]; woman[j]=woman_var; } printf("woman "); for(i=0; i<M; i++) { printf("woman[i]=%d ",woman[i]); } printf("\n"); int count=0; for(i=0; i<M; i++) { for(j=0; j<M; j++) { if(man[i]==woman[j]) { count++; } } } printf("count=%d\n",count); return 0;}#endif // 1///测试动态分配内存的传值或者传址#if 0void allocate(char *&p,int size){ cout<<&p<<endl; p=(char *)malloc(size);}int main(){ char *str=NULL; cout<<&str<<endl; allocate(str,100); strcpy(str,"hello world!"); printf("%s\n",str); free(str); return 0;}#endif // 0#if 0struct elem{ int val; int index;};int main(){ int i,j; int task[]= {0,30,155,1,80,300,170,40,99}; struct elem small[20]; int small_index=0; struct elem big[20]; int big_index=0; int length=sizeof(task)/sizeof(task[0]); for(i=0;i<length;i++){ if(task[i]<50){ small[small_index].val=task[i]; small[small_index].index=i; //printf("%d\n",small[small_index].val); small_index++; }else { big[big_index].val=task[i]; big[big_index].index=i; //printf("%d\n",big[big_index].val); big_index++; } } for(i=0;i<small_index;i++){ printf("%d %d\n",small[i].val,small[i].index); } for(i=0;i<big_index;i++){ printf("%d %d\n",big[i].val,big[i].index); } return 0;}#endif#if 0 ///身份证验证int str2num(char *src,int len){ int i=0; int res=0; int flag=1; for(i=len-1;i>=0;i--){ res +=(src[i]-'0')*flag; flag *=0; } return res;}int verifyIDCard(char *input){ int i=0; int year=0; int month=0; int day=0; int len=strlen(input); if(len!=18) return 1; for(i=0;i<17;i++){ if((input[i]<'0')||(input[i]>'9')) return 2; } if((input[17]<'0')||(input[17]>'9')||(input[17]!='x')) return 3; year=str2num(input+6,4); month=str2num(input+10,2); day=str2num(input+12,2); if(year<1900 || year>2100) return 4; if(month<1 || month>12) return 5; if(day<1 || day>31) return 6; if(month==2){ if(year%4==0)&&(year%100!=0)||(year%400==0){ if(day>29) return 0; }else{ if(day>28) return 6; } } return 0;}int main(int argc,char *argv){ char input[]="412829198808015258"; verifyIDCard(input); return 0;}#endif // 1#if 0 ///华为oj平台基础题int string2int(char *s,int len){ int res=0; int f=1; int i=0; for(i=len-1;i>=0;i--){ res=res+(s[i]-'0)*f; f=f*10; } return res;}bool isIPAdressValid(char *ip){ int len=0,i=0,j=0,k=0; int count=0; char src[100]={0}; char s[10]={0}; if(IP==0 || IP==" ") return false; while(ip[len]){ src[len]=ip[len]; len++; } src[len]='\0'; for(i=0;i<len;i++){ if((i==0||i=len-1)&&(src[i]==' ')) continue; if((src[i]<'\0'||src[i]>'9')&&(src[i]!='.')&&(src[i]!=' ')) return false; s[j++]; if(src[i]=='.'){ count++; if(src[i+1]=='.' || src[i+1]=='\0') return false; if(j>4) return false; if(j>2 &&s[0]=='0') return false; for(k=0;k<j-1;k++){ if(s[k]==' ') return false; } if(j==4){ if(string2int(s,3)>255) return false; } j=0; } } if(count!=3) return false; return true;}int main(int argc,char *argv){ char IP[]="192.168.1.110"; isIPAddressValid(const char *pszIPAddr); return 0;}#endif // 1#if 0 ///京东17年秋招进制均值int hexSum(int n,int a){ int sum=0; while(n){ sum +=(n%a); n=n/a; printf("sum=%d,n=%d\n",sum,n); } return sum;}int main(){ int A; int tmp; int temp1; while(cin>>A){ int sum=0; for(int i=2;i<=A-1;i++){ sum +=hexSum(A,i); } printf("total=%d\n",sum); tmp=9; temp1=3; while(temp1!=tmp){ if (temp1>tmp) temp1=temp1-tmp; else tmp=tmp-temp1; } printf("temp1=%d\n",temp1); //int r=_gcd(sum,A-2); cout<<sum<<'/'<<(A-2)<<endl; } return 0;}#endif#if 0 ///京东17年秋招试题 通过考试const int maxn=105;int n,a[maxn];double dp[maxn][maxn];int main(int argc,char* argv){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } dp[0][0]=1; for(int i=1;i<=n;i++){ dp[i][0]=dp[i-1][0]*(100.0-a[i])/100; for(int j=1;j<=i;j++){ dp[i][j]=dp[i-1][j]*(100.0-a[i])/100+dp[i-1][j-1]*1.0*a[i]/100; } } int begin=(3*n+4)/5; double ans=0; for(int i=begin;i<=n;i++){ ans += dp[n][i]; } printf("%.5f\n",ans); return 0;}#endif // 1#if 0 ///京东17年秋招-异或int main(int argc,char *argv[]){ int i=0; char str1[]="1100"; char str2[]="0100"; int len=strlen(str1); char str[5]={0}; for(i=0;i<len;i++){ int int_str1=str1[i]-'0'; int int_str2=str2[i]-'0'; printf("%d %d\n",int_str1,int_str2); if(int_str1==int_str2){ str[i]='0'; }else { str[i]='1'; } } for(i=0;i<len;i++){ printf("%c\n",str[i]); } int sum=0; /*for(i=len-1;i<=0;i--){ if(i==len-1){ sum =(str[i]-'0'); }else{ sum += (str[i]-'0')*2; } }*/ for(i=0;i<len;i++){ sum *=2; sum +=str[i]-'0'; } printf("sum=%d\n",sum); return 0;}#endif // 0#if 1 ///京东17年校招拍卖产品const int maxn=1005;int a[maxn];int main(int argc,char *argv){ int n,m,ans=0,pos=0; scanf("%d%d",&n,&m); int i=0; for(i=1;i<=m;i++){ scanf("%d",&a[i]); } sort(a+1,a+1+m); for(i=1;i<=m;i++){ if(ans<a[i]*min(n,m-i+1)){ ans=a[i]*min(n,m-i+1); pos=a[i]; } } printf("%d\n",pos); return 0;}#endif // 1
阅读全文
0 0
- 最近见到的一些2017年的名企校招题
- 回家-我所见到的一些人
- C中见到的一些函数记录
- 最近见到了好几个原来内地的学生
- 晒晒最近见到的几道笔试题目
- 一些PHP中之前没见到过的知识点收集
- 第一次见到的车
- 他们见到眼前的
- 最近的一些开发
- 最近的一些想法
- 最近的一些感触
- 最近的一些事情
- 最近的一些打算
- 最近的一些感触
- 最近的一些感想
- 最近的一些笔记
- 最近的一些日子
- 最近的一些事情
- 【转载】UCOS临界代码问题以及解决办法
- HDOJ_1002_A + B Problem II
- 跳动的心
- java基础--关于封装、继承、重写与多态
- 量子通信 VS. 信息安全 探讨
- 最近见到的一些2017年的名企校招题
- 音视频相关知识
- sqlserver 数据库导出导入的一种方式
- 数组对象自带的排序方法,数组去重
- 图片回显
- java使用itext合并pdf文件
- MyCLI :易于使用的 MySQL/MariaDB 客户端
- 最常用的五大算法
- WPF中的Command命令