zoukankan      html  css  js  c++  java
  • 华为往年笔试题【空瓶子换水喝】

    题目:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是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\n",m/2);
     8  
     9     return 0;
    10  
    11 }
  • 相关阅读:
    【简●解】POJ 1845 【Sumdiv】
    【简●解】 LG P2730 【魔板 Magic Squares】
    团队会议01
    【随手记】原型展示+电梯演讲
    发际线总和我作队-第一次视频会议
    团队项目-记账App
    人生第一篇博客 , 当然是经典的 "Hello World"
    窗体评分系统
    优化MySchool数据库设计总结
    相关子查询
  • 原文地址:https://www.cnblogs.com/lijiaxin/p/10658187.html
Copyright © 2011-2022 走看看