每日练题——唐龙守则、最大公约、连锁进位

简介: 每日练题——唐龙守则、最大公约、连锁进位

唐龙守则

题目描述

运行代码

#include<iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    cout<<n/3;
    return 0;
}

代码思路

直接输出题意,每三个就要撤回一条

最大公约

题目描述

运行代码

#include<iostream>
#include<map>
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
map<int ,int >mp;
int main()
{int n;
  int a=1;
  cin>>n;
  for(int i=0;i<n;i++)
  {
    int t;
    cin>>t;
    mp[t]++;
    if(mp[t]>a) 
            a=mp[t];
  }
  cout<<a;
    return 0;
}

代码思路

  1. 引入头文件:#include<iostream> 用于标准输入输出操作,如 cincout#include<map> 引入了STL中的map容器,用于存储键值对,这里用于记录每个整数及其出现的次数。
  2. 变量定义:int n; 用于存储输入的整数序列的长度。int a=1; 初始化最大计数值为1,用于记录出现次数最多的整数的频次。
  3. 主函数 main():
  • 读取整数序列的长度 n
  • 使用一个 for 循环遍历输入的整数序列。在循环内部,读取每个整数 t。更新 map 容器 mp,将 t 作为键,其出现次数作为值。mp[t]++ 表示如果 t 已经在 mp 中,则其计数加1;如果不在,则自动插入并初始化为1。使用条件语句 if(mp[t]>a) 检查当前整数 t 的出现次数是否大于已知的最大计数 a,如果是,则更新 a 为当前的计数。
  • 循环结束后,输出变量 a,即出现次数最多的整数的出现次数。

总结:这个程序实现了一个简单的统计问题,即找出一组整数中出现次数最多的数的出现次数。它使用了STL中的map容器来进行高效地计数,并通过一次遍历确定了最大计数值。

连锁进位

题目描述

运行代码

#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
using namespace std;
void solve(){
    string s;
    cin >> s;
    reverse(s.begin(),s.end());
    int k=0;
    for(k;k<s.size()-1;k++)
    {
        if(s[k]!='0') break;
    }
    if(k==s.size()-1)
    {
        cout << 0 << endl;
        return ;
    }
    int ans=10-(s[k]-'0');
    k++;
    for(k;k<s.size()-1;k++)
    {
        ans+=9-(s[k]-'0');
    }
    cout << ans << endl;;
}
int main(){
  ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    int T;
    T=1;
    cin >> T;
    while(T--)
    solve();
    return 0;
}

代码思路

  1. 输入与预处理:读取一个整数T,表示有T组测试数据,定义一个函数solve()来处理每组测试数据。在solve()中,读取一个字符串s,这个字符串代表了要进行变换的非负整数。
  2. 反转字符串:因为我们要从低位到高位考虑更改数字,所以先将字符串s反转,这样就可以从字符串的开头开始处理,实际上是在处理原数的低位。
  3. 寻找第一个非零位:通过一个循环,从字符串的开始处寻找第一个不为'0'的字符。这是因为在处理过程中,我们关心的是如何让数变大,如果全是0,说明已经是最大的数了(对于有前导零的情况),直接输出0。如果找到了非零位,进入下一步处理;如果没有找到,说明原数全为0,直接输出0。
  4. 计算最少更改次数:从第一个非零位开始,计算每个位置上需要更改的最小次数,使其成为比当前数字大1的数字。例如,如果字符是'1',则需要更改1次变成'2';如果是'9',则需要更改1次变成'0'(因为是循环的,9后是0)。对于第一个非零位之后的其它所有位(直到倒数第二位,因为最后一位的处理方式不同),直接计算需要更改为9的次数,即9减去当前数字。
    计算完成后,累加这些更改次数得到最终答案,并输出。
  5. 主循环:在main()函数中,读取测试用例的数量T,然后循环调用solve()函数处理每组数据。

注意ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);,优化IO速度的代码行,关闭C++标准库与C标准库之间的同步,以及解除cin和cout的绑定,从而加速IO操作。

目录
相关文章
|
1月前
|
数据挖掘 数据处理 UED
没有10万以上的储备资金,你不要碰上门按摩的项目!
本文详细解析了运营上门按摩项目的成本,主要包括系统研发费(1-3万)、平台运营费(3万)及宣传推广费(4万),总计约需10万元。此外,还应预备法律咨询、保险等额外费用,且一线城市成本或更高。文章强调,充足的资金、优质系统、专业团队及有效推广策略是成功关键。
|
7月前
|
区块链
数字藏品开发原理丨鲸探幻核数字藏品系统开发功能分析
数字藏品借助区块链技术推动文化产业创新,实现传统文化的活化与商业价值提升。中国在NFT领域展现出合规、自主研发、大规模用户、合作传承和低碳环保的优势。NFT核心价值在于数字内容资产化、确权保障及去中心化交易,提升创作者权益。区块链技术确保数字藏品的唯一性、真实性和交易效率,促进版权保护和市场流通,打造活跃的创作交流平台。
|
数据挖掘 区块链
(币安/okex)交易所搬砖套利软件开发源码规则解析
(币安/okex)交易所搬砖套利软件开发源码规则解析
|
决策智能 计算机视觉
博弈论第十二集总结(“社会公约、侵略和周期 ”观后感)
博弈论第十二集总结(“社会公约、侵略和周期 ”观后感)
94 0
|
存储 算法
【备战蓝桥,冲击省一】高精度算法实现加减乘除
【备战蓝桥,冲击省一】高精度算法实现加减乘除
150 0
|
搜索推荐 程序员 SEO
程序员怎么接私活:外包众包接单方法!
程序员怎么接私活:外包众包接单方法!
828 0
|
前端开发 JavaScript
【单子】说白了不过就是【自函子范畴】上的一个【幺半群】而已?请说人话!!
起初本瓜看到【单子】说白了不过就是【自函子范畴】上的一个【幺半群】而已?这句话的时候,还以为自己在看量子力学的量子纠缠相关内容,单子、函子、粒子、玻色子、费米子、绝绝子。。。
鲸探数字藏品交易平台开发|NFT数字藏品交易系统案例
随着区块链技术逐渐成熟、快消费时代节奏下,国内数字藏品市场规模正不断爆发式增长。数字藏品,以艺术内涵、纪念意义和商品的实际价值做支撑,不具备支付功能等任何货币属性,售价也相对“亲民”,吸引了不少当代年轻人的注意,一经开售便一抢而空。
|
数据采集 人工智能 数据可视化
复盘丨中建三局:在数字世界里盖一座摩天大厦
建筑业几乎可以和农业相比,争夺数字化转型倒数的“桂冠”。而当古老的建筑行业遇上新兴的数字技术,新的故事已然在谱写。 建筑行业的数字化不是单点问题,而是全局问题,所以必然需要从顶层至底层的方法论,同时也要找到小场景的切入口,切实解决生产中的疑难杂症。中建三局一公司果断地将所有的数据和应用全部放在阿里云上,将原来的软件进行重构,显示出绝对的魄力。
797 0
复盘丨中建三局:在数字世界里盖一座摩天大厦