1045:收集瓶盖赢大奖

1045:收集瓶盖赢大奖

时间限制: 1000 ms    内存限制: 65536 KB

【题目描述】

某饮料公司最近推出了一个“收集瓶盖赢大奖”的活动:如果你拥有10个印有“幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。现分别给出你拥有的印有“幸运”和“鼓励”的瓶盖数,判断是否可以去兑换大奖。若可以兑换大奖,输出1,否则输出0。

【输入】

一行,包含两个整数,分别是印有“幸运”和“鼓励”的瓶盖数,用一个空格隔开。

【输出】

一行。若可以兑换大奖,输出1,否则输出0。

【输入样例】

11 19

【输出样例】

1

说明:
主要考查对if条件语句的理解,以及逻辑或运算符的运用。

思路分析:

这题关键的地方是:

如果你拥有10个印有“幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。

这句话是本题的解题条件,注意10个印有“幸运” 或 20个印有“鼓励”,这个“或”说明这两个条件只需满足其中的一个即可得奖。

所以有:

if (a >= 10 || b >= 20) cout << 1;

else cout << 0;

其中a是“幸运”的瓶盖数,b是“鼓励”的瓶盖数。

数据类型:题目没有特别说明,一般选择int类型即可。

输出的数字1和0,可以是整数、字符或字符串。

求解过程:

声明两个int类型变量a和b。

输入两个整数分别给变量a和b。

如果a>=10或者b>=20,则输出1。

否则,输出0。

参考代码 - C++:

#include <iostream>
using namespace std;
int main()
{
    int a, b;
    cin >> a >> b;
    if (a >= 10 || b >= 20) cout << 1;
    else cout << 0;
    return 0;
}

参考代码 - C语言:

#include <stdio.h>
int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    if (a >= 10 || b >= 20) printf("1");
    else printf("0");
    return 0;
}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当小可抽到一个正数时,他会选择继续抽下一个格子,因为这样能够增加他获得的糖果数量。当小可抽到一个负数时,他会选择停止抽奖,因为这样能够避免失去更多的糖果。 为了求得小可能够获得的最大糖果数量,我们可以使用动态规划的思想。假设dp[i]表示小可从第1个格子抽到第i个格子能够获得的最大糖果数量。 那么,对于第i个格子,有两种情况: 1. 小可选择继续抽下一个格子,那么第i个格子的糖果数量会被加到之前的总糖果数量上,即dp[i] = dp[i-1] + a[i]; 2. 小可选择停止抽奖,那么第i个格子的糖果数量就是小可之前已经获得的最大糖果数量,即dp[i] = dp[i-1]。 综上所述,我们可以得到状态转移方程: dp[i] = max(dp[i-1] + a[i], a[i]) 最后,小可能够获得的最大糖果数量就是dp[n],其中n表示格子的数量。 以下是使用C++实现该算法的代码: ```cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; int getMaxCandies(vector<int>& candies) { int n = candies.size(); vector<int> dp(n + 1, 0); for (int i = 1; i <= n; i++) { dp[i] = max(dp[i - 1] + candies[i - 1], candies[i - 1]); } return dp[n]; } int main() { int n; cout << "请输入格子的数量: "; cin >> n; vector<int> candies(n); cout << "请输入每个格子中的糖果数量: "; for (int i = 0; i < n; i++) { cin >> candies[i]; } int maxCandies = getMaxCandies(candies); cout << "小可能够获得的最大糖果数量是: " << maxCandies << endl; return 0; } ``` 希望以上代码能够帮助到你,如果有任何疑问,请随时提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值