前两天收到华为软件类实习招聘机试的通知匆匆准备了两天,今天上午上了半节曾哥的课就坐校车赶去清水河参加华为的机试了╮(╯▽╰)╭可能因为是实习招聘,题目比网上流传的要简单点,今年貌似新采取了OJ的形式来机试,但是不像OJ那么严格要限定时间和内存。有三道题,第一题60分,第二题100分,第三题160分,下面是根据我回忆写出的题目和代码:
第一题:
输入uiMin,uiMax, uiStep,输入的三个变量以逗号间隔开来,变量的类型均为unsigned int,其中uiMin <= uiMax,求表达式 x * (x + 2) +1在区间[uiMax,uiMin]中以uiStep为步长的所有和,要求必须包括uiMax和uiMin。
样例输入:1,3,1
样例输出:29
思路:这道题比较简单吧,有两个要注意的点就是:输入用逗号来间隔开,我用cin.get()来解决这个问题;还有就是要考虑最后一个x超过uiMax的时候要记得把uiMax算上来。下面是我写的代码,典型的用C++语法来写C╮(╯▽╰)╭求勿拍。。
1 #include<iostream> 2 #include<cstdlib> 3 #include<cstring> 4 #include<windows.h> 5 6 using namespace std; 7 8 int main() 9 { 10 unsigned int uiMin, uiMax, uiStep, ans, x; 11 cin >> uiMin; 12 cin.get(); 13 cin >> uiMax; 14 cin.get(); 15 cin >> uiStep; 16 ans = uiMin * (uiMin + 2) + 1; 17 x = uiMin + uiStep; 18 while (x < uiMax) 19 { 20 ans = ans + x * (x + 2) + 1; 21 x = x + uiStep; 22 } 23 if (x == uiMax) ans = ans + x * (x + 2) + 1; 24 else ans = ans + uiMax * (uiMax + 2) + 1; 25 cout << ans << endl; 26 system("pause"); 27 return 0; 28 }
先睡了。。剩下两题明天更新:)
2014华为成都实习招聘软件类机试回忆录,布布扣,bubuko.com
原文:http://www.cnblogs.com/yomman/p/3604215.html