成人大專報考條件seo 重慶
題目內(nèi)容
喝汽水問題
喝汽水,1瓶汽水1元,2個空瓶可以換一瓶汽水,給20元,可以喝多少汽水(編程實現(xiàn))。
題目分析
數(shù)學思路分析
根據(jù)給出的問題和引用內(nèi)容,我們可以得出答案。
首先,我們用20元購買了20瓶汽水,現(xiàn)在有20個空瓶。
接下來,我們將這20個空瓶兌換成新的10瓶汽水。
然后,將這10個空瓶再次兌換成新的5瓶汽水,此時還剩下一個空瓶。
我們將這個剩余的空瓶與后面的空瓶結(jié)合兌換,得到1瓶新的汽水。
因此,到目前為止,我們總共獲得了20+10+5+2+1+1=39瓶汽水。
所以,給了20元我們可以喝到39瓶汽水。
編程思路分析
思路一 循環(huán)實現(xiàn)
total = 20; ?//汽水總數(shù)
? ? int k = 0; ? ? //空瓶數(shù)
? ? int s = 0 ; ? ? //剩余空瓶
第一次(k=20)。
第二次(k=20/2=10,s=20%2=0),此時total又增加10了;
第三次(k=10/2=5,s=10%2=0);
第四次(k=5/2=2, s=5%2=1,);
第五次(k=2/2=1,s=2%2=0);
(s=1)。
#include<stdio.h>
#include<stdlib.h>
int main()
{int total = 20; //汽水總數(shù)int k = 0; //空瓶數(shù)int s = 0 ; //剩余空瓶k = 20;while(k>=1){k= k+s;total = total+k/2;//原有的汽水數(shù)+換來的汽水數(shù)s = k%2;k=k/2;//兩個空瓶子換1個新汽水,汽水喝完就是1個瓶子}printf("%d\n",total);system("pause");return 0;
}
思路二?遞歸實現(xiàn)
第一次和第二次買汽水 ,分別花了一塊錢(+2),
從第三次開始,每次去花一塊錢買汽水,再加上用第一次和第二次的空瓶子可以換來一瓶,一共可以獲得兩瓶汽水(+2),
第四次拿著第三次那兩空瓶子,再花一塊錢,又可以得到兩瓶汽水(+2),
第五次,第六次,以此類推,接下來的每一次都是相當于花1元錢和兩個空瓶子,來獲得兩瓶新的汽水。
那么到最后一次時,手里已經(jīng)沒有錢了,即此時只有兩個空瓶子換來一瓶汽水(+1)。
把去買汽水的過程定義為一個函數(shù)就可以遞歸計算最終結(jié)果。
#include<stdio.h>
#include<stdlib.h>
int Buy(int money)
{if(money==1)return 1;else return Buy(money-1)+2;
}
int main()
{int money = 20;printf("%d\n",Buy(money));system("pause");return 0;
}
?