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

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

唐龙守则

题目描述

运行代码

#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操作。

目录
相关文章
|
11月前
|
机器人 区块链
币圈Swap夹子套利搬砖机器人合约部署源码开发
mapping(address => bool) private[ isApproved ]; mapping(address => mapping(address => uint256)) private[ swapOrders ];
|
前端开发 JavaScript
【单子】说白了不过就是【自函子范畴】上的一个【幺半群】而已?请说人话!!
起初本瓜看到【单子】说白了不过就是【自函子范畴】上的一个【幺半群】而已?这句话的时候,还以为自己在看量子力学的量子纠缠相关内容,单子、函子、粒子、玻色子、费米子、绝绝子。。。
|
机器学习/深度学习 人工智能 机器人
财务机器人,财会人的毒药还是解药?
试想一下,如若机器人替代人类进行会计、税务、审计等工作会是怎样的场景呢?如今,这一切已经成为现实。德勤财务机器人正式上岗,已经与多家企事业单位建立合作,提供财务自动化流程解决方案。机器人为财务部门的工作带来效率的提升,帮助财务人员完成大量重复规则化的工作。
财务机器人,财会人的毒药还是解药?
羽顺壁挂炉连续三年荣获广东省守合同重信用企业称号
诚信是人类社会普遍的道德要求,是个人立身处世的基本规范,更是企业存续发展的重要基石。近日,2018年度“广东省守合同重信用企业”名单正式公布,中山市羽顺热能技术设备有限公司(下文称“中山羽顺”)顺利通过广东省工商行政管理局的最终评审,连续三年获评“广东省守合同重信用企业”荣誉称号。
909 0
|
大数据 区块链
发币要被割韭菜 区块链研发何处去?
发币要被割韭菜 区块链研发何处去?
1187 0
|
供应链 搜索推荐
SaaS走出三重困
本文讲的是SaaS走出三重困,软件与生俱来就是一种独特的服务。我们见到的许多商业软件,其实是省略了针对企业的细密咨询活动的服务。
1301 0