华为往年笔试题空瓶子换水喝

Posted lijiaxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为往年笔试题空瓶子换水喝相关的知识,希望对你有一定的参考价值。

题目:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝? 

 

自己的笨解法:

 1 #include<iostream>
 2 #include<math.h>
 3 #include<string.h>
 4  
 5 using namespace std;
 6  
 7 int get_result(int n)
 8 {
 9         int result = 0;
10         if(n < 2)
11                 result = 0;
12         else{
13                 while(floor(n / 3) > 0)
14                 {
15                         result = result + floor ( n / 3 );
16                         n = floor ( n / 3 ) + ( n % 3);
17                 }
18         }
19         if ( n % 3 == 2)
20                 result ++ ;
21         return result;
22 }
23  
24 int main(){
25         int result = 0;
26         int i = 0;
27         int n = 0;
28         while (cin >> n)
29         {
30                 if( n <= 0)
31                         break;
32                 else{
33                     result = get_result(n);
34                     cout << result << endl;
35                 }
36                 //int result = 0 ;
37                 //result = get_result(n);
38                 //cout << result << endl;
39         }
40  
41 //      cout << i << endl;
42         return 0;
43 }

大神解法:(来源:牛客网)

 1 #include<stdio.h>
 2  
 3 int main (){
 4  
 5     int m;
 6  
 7     while(~scanf("%d",&m)&&m!=0) printf("%d
",m/2);
 8  
 9     return 0;
10  
11 }

 

以上是关于华为往年笔试题空瓶子换水喝的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript笔试题(js高级代码片段)

公司真题-华为

华为机试:汽水瓶

2017华为优招笔试题

华为研发工程师编程题

华为笔试题OD