蓝桥杯(基础题)

试题 C: 好数

时间限制 : 1.0s  内存限制: 256.0MB 本题总分:10

 【问题描述】

一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位 · · · )上 的数字是奇数,偶数位(十位、千位、十万位 · · · )上的数字是偶数,我们就称 之为“好数”。 给定一个正整数 N ,请计算从 1 N 一共有多少个好数。 【输入格式】
一个整数 N
【输出格式】
一个整数代表答案。
【样例输入 1
24
【样例输出 1
7
【样例输入 2
2024
【样例输出 2
150
【样例说明】
对于第一个样例, 24 以内的好数有 1 3 5 7 9 21 23 ,一共 7 个。
【评测用例规模与约定】
对于 10 % 的评测用例, 1 N 100
对于 100 % 的评测用例, 1 N 10^ 7
#include <iostream>
using namespace std;
bool Number(int num) {
    int d = 1;
    while (num > 0) {
        int c_d = num % 10;
        if ((d % 2 == 1 && c_d % 2 == 0) || (d % 2 == 0 && c_d % 2 == 1)) {
            return false;
        }
        num /= 10;
        d++;
    }
    return true;
}
int main() {
    int n;
    cin >> n;
    int count = 0;
    for (int i = 1; i <= n; i++) {
        if (Number(i)) {
            count++;
        }
    }
    cout << count << endl;
    return 0;
}

 

试题 D: R 格式

时间限制 : 1.0s  内存限制: 256.0MB  本题总分:10

【问题描述】

小蓝最近在研究一种浮点数的表示方法: R 格式。对于一个大于 0 的浮点
d ,可以用 R 格式的整数来表示。给定一个转换参数 n ,将浮点数转换为 R
格式整数的做法是: 1. 将浮点数乘以 2 n ; 2. 四舍五入到最接近的整数。
【输入格式】
一行输入一个整数 n 和一个浮点数 d ,分别表示转换参数,和待转换的浮点数。
【输出格式】
输出一行表示答案:d 用 R 格式表示出来的值。
【样例输入】
2 3.14
【样例输出】
13
【样例说明】
3 . 14 × 2 2 = 12 . 56 ,四舍五入后为 13
【评测用例规模与约定】
对于 50 % 的评测用例: 1 n 10 1 d 视为字符串时的长度 15
对于 100 % 的评测用例: 1 n 1000 1 d 视为字符串时的长度 ≤ 1024 ;保证 d 是小数,即包含小数点。
#include <iostream>  
#include <sstream>  
#include <iomanip>  
#include <string>  
#include <cmath>  
using namespace std;
string num(const string& d, int n);
int main() {
    int n;
    string d;
    cin >> n >> d;  
    string result = num(d, n); 
    cout << result << endl;
    return 0;
} 
string num(const string& d, int n) { 
    double a = stod(d); 
    a *= pow(2, n);  
    long long b = llround(a); 
    ostringstream ss;
    ss << b;
    return ss.str();
}

申明一下:这个为我个人解法,不是 正确答案,试题 D: R 格式这个题目个人感觉解题有出入,对数据的考虑一定不周全,这个题目改了几遍,还是达不到题目的要求精度。

  • 28
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

筱姌

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

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

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

打赏作者

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

抵扣说明:

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

余额充值