问题标题: 酷町堂:2461 汽水兑换

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者

为了回收玻璃汽水瓶,汽水公司做出如下推广活动,两个空瓶即可免费兑换一瓶新的汽水。现在小明家攒了n个空瓶子,问小明一共可以兑换多少瓶汽水?

输入描述 Input Description

小明现在有的空瓶子数n,(10<=n<=100)

输出描述 Output Description

能免费兑换的最多汽水数量。

样例输入 Sample Input

10

样例输出 Sample Output

9

怎么做?

汪宇航在2021-03-10 20:46:04追加了内容

PS:为什么4372有20个知识点?

汪宇航在2021-03-10 21:13:27追加了内容

#include <bits/stdc++.h>

using namespace std;

int num=0;

void f(int x){

if(x<2){

num+=x/2;

f(x/2+x%2);

return ;

}

}

 

int main(){

int n;

cin>>n;

f(n);

cout<<num;

return 0;

}

@谭迪元 样例爆了


0
已采纳
陈正朔
陈正朔
初级光能
初级光能

我的递归函数

int dg(int x){
    if(x<2) return 0;
    return x/2+dg(x/2+x%2);
}

主函数中直接输入n,输出dg(n)

0
谭迪元
谭迪元
资深光能
资深光能

int num=0;

void f(int x)

{

if(x<2)

return;

num+=x/2;

f(x/2+x%2);

}

 

int main()

{

int n;

cin>>n;

f(n);

cout<<num;

给你了

谭迪元在2021-03-10 20:57:43追加了内容

望采纳

我要回答