当前位置: 首页 > article >正文

C++ 每日一练

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

C++ 每日一练

  • 前言
  • 一、因数-数字游戏
  • 二、通货膨胀-x国货币
  • 三、熊孩子拜访


前言

突然想起了C++,很久没用过了,python真香,为了做个正经程序人,捡起来练练。就用csdn的每日一练试试。

要代码效率就用C++,要码代效率就用python。


`提示:2023年4月5号清明节的每日一练。
在这里插入图片描述

一、因数-数字游戏

描述:小Q的柠檬汁做完了。 掏出了自己的数字卡牌。 想要和别人做数字游戏。 可是她又不想要输掉游戏。 她制定好规则,每次每个人只能把这个牌换成它的因子的某个牌。 但是这个因子不能是1或者整数本身。 现在给出整数n。 两个人开始做游戏,先手在最优策略状态下能否必胜。
要说这题有多难嘛,真心不难!但是这个神一样的题目描述,用了我半天带测带蒙才看懂!
题目结论:
1、如果n是素数,输出1. 因为一张出完。
2、如果只有二个因数,输出2. 因为小Q先手。
3、如果有大于等于三个因数,输出1. 因为超过三个因数时,小Q可以组合多个因数。
输入描述:输入整数n。(1<=n<=1e13)
输出描述:先手赢输出”1”,后手赢输出”2”。
示例:
输入
6
输出
2

代码如下:

using namespace std;

int solution(long int n){
    int result;
    // TODO:
    vector<long> vec;
    long i=2;
    while (i*i <=n){
        while (n%i==0){
            vec.push_back(i);
            n/=i;
        }
        i++;  
    }
    if (n>1) vec.push_back(n);
    if (vec.size()==2) result=2;  
    else result = 1; 
return result;
}

这题用暴力法,会超时,别问我怎么知道的~

二、通货膨胀-x国货币

描述:X国发行货币最高面额为n。 次高面额为n的因子。 以此类推。 X国最多发行多少种货币。
重点思路:
从小到大除,除出的商肯定是因子。除n外,不会有大于n/2的因子。
输入描述:输入整数n。(1<=n<=1000000)表示货币的最大面额
输出描述:输出货币的种类。
示例:
输入
10
输出
3

代码如下:

int solution(int n){
    int result=1, i=1;   //result=1这个1是本身
    // TODO:
    while (n/2 >= i) {
        if (n%i==0) result++, n=n/i, i=1;    
        ++i;
    }
    return result;
}

一次搞定,没用暴力法。

三、熊孩子拜访

描述:已知存在一个长度为n的整数序列A。 A中所有元素按照从小到达的顺序进行排序。 现在执行操作倒置一段序列。 请找到A序列里的倒置子序列。
输入描述:第一行输入整数n.(1<=n<=1000)。 第二行输入n个整数。(1<=num<=10000)
输出描述:输出被倒置的数列的左值,右值。 如果没有输出0 0
示例:
输入
4
1 3 2 4
输出
2 3

代码如下:

std::vector<int> solution(int n, std::vector<int>& vec){
    std::vector<int> result;
    // TODO:
    using namespace std;
    int L=0, R=0, L_flag=1;
    for (int i=0; i<n; ++i){
        if (vec[i] > vec[i+1] && i+1<n){
            R=vec[i+1];
            if (L_flag) L=vec[i], L_flag=0;
        } 
    }
    result={R,L};
    return result;
}

这题目描述得也有点问题,至少左右倒了!


http://www.kler.cn/a/6372.html

相关文章:

  • CSS系列(27)- 图形与滤镜详解
  • 突发!!!GitLab停止为中国大陆、港澳地区提供服务,60天内需迁移账号否则将被删除
  • tcp 的重传,流量控制,拥塞控制
  • 分享某大佬微信hook 最新版本 dll (懂得都懂)
  • react中使用ResizeObserver来观察元素的size变化
  • 【086】基于51单片机电子音乐门铃【Proteus仿真+Keil程序+报告+原理图】
  • ChatGPT全球大封号!数10万企业停摆:第一批玩AI的人,被AI给玩了
  • Atomic包
  • 【数据结构】线性表(顺序存储和链式存储)两种方法,细节满满,保你学会
  • Compose(?/N) - 微件
  • 数据字典和数据字典视图
  • node Mongodb 修改数据库返回的值
  • HulaCWMS呼啦企业网站管理系统 v3.0.4
  • 洛谷 P1135 奇怪的电梯 题解
  • C 数据类型
  • vscode设置选中代码自定义高亮颜色
  • 4个令人惊艳的ChatGPT项目,开源了!AIGC也太猛了...
  • 蓝桥杯-作物杂交(C++)
  • 【vue2.0后台项目之登陆】01登陆开发流程分析
  • Codeforces div 863C
  • C++ unordered_map容器所有的函数使用方法
  • 【Ruby学习笔记】6.Ruby 注释及判断
  • 剑指 Offer 56 - I. 数组中数字出现的次数
  • Android物理按键事件处理
  • springboot 数据库应用
  • .NET Core 中实现分布式事务的几种方案