ZOJ 1095 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=95
原来微软好些题都来自OJ啊~
只是这些面试题都被 OJer 归类为水题不知让我们这些搓人如何着想啊。。。仰慕ZOJ 上的各种大牛神牛
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; int a[5850]; int min4(int a,int b,int c,int d) { return min(a,min(b,min(c,d))); } int main() { int n=1; int p2,p3,p5,p7; p2=p3=p5=p7=1; a[1]=1; while(a[n]<2000000000) { a[++n]=min4(2*a[p2],3*a[p3],5*a[p5],7*a[p7]); if(a[n]==2*a[p2]) p2++; if(a[n]==3*a[p3]) p3++; if(a[n]==5*a[p5]) p5++; if(a[n]==7*a[p7]) p7++; } while(scanf("%d",&n),n) { if(n % 10 == 1 &&n %100!=11) printf("The %dst humble number is %d.\n",n,a[n]); else if(n % 10 == 2 && n %100 != 12 ) printf("The %dnd humble number is %d.\n",n,a[n]); else if(n%10 == 3 && n %100!= 13) printf("The %drd humble number is %d.\n",n,a[n ]); else printf("The %dth humble number is %d.\n",n,a[n ]); } }
ZOJ 1151
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=151
又一个面试题,一个字符串中每个单词反转一下。不做OJ不知道,好多面试题来自于OJ上,但是都是ACMer眼中的水题啊!!!水题啊!!!我哭了去。。。。。
#include<stdio.h> #include<iostream> #include<algorithm> #include<string> #include<vector> using namespace std; char s[1000]; void solve() { int sz=strlen(s); int i=0,j=0; while(s[j]!='\0') { if(s[j]==' ') { reverse(s+i,s+j); i=j; j++; } else { if (s[i]==' ') i=j; j++; } } if (i<=j) reverse(s+i,s+j); } int main() { int n,m,nCase=0; scanf("%d",&n); while(nCase<n) { scanf("%d\n",&m); while(m--) { gets(s); solve(); printf("%s\n",s); } if ( nCase++!=n-1) printf("\n"); } }
ZOJ 1088
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1088
其实就是约瑟夫环问题,问应该每隔几个报数能够使得2号曹楼是最后一个胜利者。
#include<iostream> using namespace std; int n; int check(int m) { int s=0; for(int i=2; i<n; ++i) s=(s+m)%i; return s; } int main() { cin>>n; while(n>0) { int m=1; while(check(m)) ++m; cout<<m<<endl; cin>>n; } return 0; }