喝汽水問題

來源:互聯網
上載者:User

    *******喝汽水問題******

題目:一瓶汽水1塊錢,當你有20塊錢,你可以喝幾瓶汽水。

      聽說這道題是一次面試題,所以你可以看看。

面對這道題,你可以考慮一下這樣分析問題,你先大概算算可以喝多少瓶,(你對這個問題有思路就可以不看,直接看代碼)

第一步:你有二十塊錢,你不換瓶子時,你本來就可以喝20瓶。

第二步:你喝完二十瓶,你換,可以換10瓶。OK,你現在又可以喝10瓶,此時你總共喝了30瓶;

第三步:你喝完你剛換的10瓶,你總共有10個空瓶子,可以換5瓶汽水。此時你又可以再喝5瓶,ok到達這一步你就喝了35瓶。

第四步:你現在有5個空瓶子,此時你可以換兩瓶,於是你又再喝2瓶,ok,你此時總共37瓶。

第五步:你有之前沒換的一個空瓶子,再加你喝了的兩瓶,你有三個空瓶子,你就可以換一瓶,ok你你此時總共38瓶;

第六步:你有空瓶子2個,所以你可以換1瓶,完了,你總共39瓶了,問題結束。

#include <stdio.h>int main(){int money = 20;   //當前你有多少錢。int price = 1 ;    //一瓶汽水的單價int soda = money / price;    //在還沒換瓶子時,可以喝的汽水瓶數。int exchange = soda;      //你目前可以換的瓶子數do{if(exchange % 2 == 0)  // 開出的條件是兩個換一個所以先看看是偶數瓶子時,可以全部換{exchange = exchange / 2;soda = exchange + soda;}                    //如果此時你的瓶子數是奇數時:else{exchange = exchange / 2 + 1;//你換完以後還剩一個瓶子得加到空瓶子的數量中去。soda = soda + exchange - 1;}}while(exchange !=1);printf("你可以喝%d瓶汽水。\n",soda);return 0;}
結束。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.