GESP C++三级样题

GESP C++三级样题

B3848 [GESP样题 三级] 逛商场

题目描述

小明是个不太有计划的孩子。这不,刚到手的零花钱,就全部拿着逛商场去了。

小明的原则很简单,见到想买的物品,只要能买得起,就一定会买下来之后才会继续往前走;如果买不起就直接跳过。

一天下来,小明到底买了多少物品呢?

输入格式

输入共 333 行:

第一行是一个整数 NNN,表示商场中共有 NNN 种小明想买的物品(1≤N≤1001≤N≤1001N100);

第二行共有 NNN 个整数,分别表示小明先后见到想买的物品的价格;

第三行是一个整数 XXX,表示开始时小明共有 XXX 元零花钱。

输出格式

输出 111 行,包含一个整数,表示小明买到的物品数。

输入输出样例 #1

输入 #1

6
7 5 9 10 7 4
30

输出 #1

4

说明/提示

数据范围:

对于 100%100\%100% 的数据满足 1≤N≤1001≤N≤1001N1000≤ai≤1000000\le a_i \le 1000000ai100000

#include <iostream>
using namespace std;

int main(){
    int n,x;//n种物品,x元零花钱
    int price[100];//物品价格数组
    cin>>n;
    for(int i=1;i<=n;i++){cin>>price[i];}
    cin>>x;
    int ans=0;//记录物品数
    for(int i=1;i<=n;i++){//遍历价格数组
        if(price[i]<=x){//如果当前物品价格小于等于零花钱数
            x-=price[i];//零花钱数减去物品价格,代表买下了此物品
            ans++;//买到的物品数+1
        }
    }
    cout<<ans<<endl;//输出答案
    return 0;
}

B3849 [GESP样题 三级] 进制转换

题目描述

小美刚刚学习了十六进制,她觉得很有趣,想到是不是还有更大的进制呢?在十六进制中,用 A 表示 101010F 表示 151515。如果扩展到用 Z 表示 353535,岂不是可以表示 363636 进制数了嘛!

所以,你需要帮助她写一个程序,完成十进制转 RRR 进制(2≤R≤362\le R\le 362R36)的工作。

输入格式

输入两行,第一行包含一个正整数 NNN,第二行包含一个正整数 RRR,保证 1≤N≤1061\le N\le 10^61N106

输出格式

输出一行,为 NNNRRR 进制表示。

输入输出样例 #1

输入 #1

123
25

输出 #1

4N
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string decimalToBaseR(int N,int R){
    string result="";
    string digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    while(N>0){
        int remainder=N%R;
        result+=digits[remainder];
        N=N/R;
    }
    reverse(result.begin(),result.end());
    return result;
}
int main(){
    int N,R;
    cin>>N>>R;
    string res=decimalToBaseR(N,R);
    cout<<res<<endl;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布丁写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值