首页 > 编程语言 >第十六届蓝桥杯模拟赛(第二期)c++答案与代码

第十六届蓝桥杯模拟赛(第二期)c++答案与代码

时间:2024-11-30 21:33:53浏览次数:7  
标签:2024 long 第十六届 整数 蓝桥 int c++ tie using

一、【问题描述】

如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。

请问, 2024 的最大的质因数是多少?

答案:23

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int main()
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int n = 2024;
//	int ans = 1;
	for(int i=n;i>=1;i--){
		if(n%i==0){
			int st = 1;
			for(int j=2;j<i;j++)if(i%j==0)st = 0;		
			if(st){cout << i;return 0;}
		}
	}
	
	return 0;
}

二、【问题描述】

对于两个整数 a, b,既是 a 的整数倍又是 b 的整数倍的数称为 a 和 b 的公倍数。公倍数中最小的正整数称为 a 和 b 的最小公倍数。

请问, 2024 和 1024 的最小公倍数是多少?

答案:259072

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int main()
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cout << 2024*1024/__gcd(2024,1024);//除以它们的公约数就是公倍数
	
	return 0;
}

三、【问题描述】
两个数按位异或是指将这两个数转换成二进制后,最低位与最低位异或作为结果的最低位,次低位与次低位异或作为结果的次低位,以此类推。

例如,3 与 5 按位异或值为 6 。

请问,有多少个不超过 2024 的正整数,与 2024 异或后结果小于 2024 。

答案:2001

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int main()
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int res{};
	for(int i=1;i<=2024;i++){
		res += ((i^2024) < 2024);
	}
	cout << res;
	return 0;
}

四、【问题描述】
小蓝有一个整数,初始值为 1 ,他可以花费一些代价对这个整数进行变换。

小蓝可以花费 1 的代价将整数增加 1 。

小蓝可以花费 3 的代价将整数增加一个值,这个值是整数的数位中最大的那个(1 到 9)。

小蓝可以花费 10 的代价将整数变为原来的 2 倍。

例如,如果整数为 16,花费 3 将整数变为 22 。

又如,如果整数为 22,花费 1 将整数变为 23 。

又如,如果整数为 23,花费 10 将整数变为 46 。

请问,如果要将整数从初始值 1 变为 2024,请问最少需要多少代价?

答案:79

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int f[3000]{};
int main()
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int n = 2024;
    for(int i=1;i<=n;i++){f[i] = 1e9;}
    f[1] = 0;
	for(int i=1;i<n;i++){
		if(i+1<=n)f[i+1] = min(f[i+1],f[i] + 1);
		
		if(i*2<=n)f[i*2] = min(f[i*2],f[i] + 10);
		//x是最大的位数
		int x{};
		int t = i;
		while(t){
			x = max(x,t%10);
			t/=10;
		}
		if(i+x<=n)f[i+x] = min(f[i+x],f[i] + 3);
		
	}
	cout << f[2024];
	return 0;
}

标签:2024,long,第十六届,整数,蓝桥,int,c++,tie,using
From: https://blog.csdn.net/m0_74337281/article/details/144160996

相关文章

  • C++中static初始化一次的真实含义
    1. static 变量的初始化与赋值static 变量在C++中有一个特别的性质:它们在程序的生命周期内只会被初始化一次,但之后可以继续对其进行赋值。初始化:static 变量在程序的初始化阶段(即程序第一次执行时)会被初始化一次。如果是局部 static 变量,则它会在第一次执行到该变量所......
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.C++11(2)
    1.可变模板参数C++11引入的可变模板参数(variadictemplates)使得模板参数的数量可以是任意多个,极大地提升了C++的模板编程能力。以下是C++11中可变模板参数的详细总结:1.基本语法在模板参数列表中,通过...(三个点)来表示可变参数。常见的使用形式如下:template<typena......
  • 读书笔记:C++程序设计原理与实践(基础篇)之八
    “程序员的工作不仅是写代码,而是解决问题。”                                        ——SteveMcConnell总阅读时间约为 5~10分钟。前言在本系列第二篇博文中【读书笔记:C++程序设计原理与实践(基础篇)之二-CSDN博客】,我们......
  • 打卡信奥刷题(336)用C++工具信奥P2813[普及组/提高] 母舰
    母舰题目背景广东汕头聿怀初中Train#3Problem1(有没有红警既视感~)题目描述在小A的星际大战游戏中,一艘强力的母舰往往决定了一场战争的胜负。一艘母舰的攻击力是普通的MA(MobileArmor)无法比较的。对于一艘母舰而言,它是由若干个攻击系统和若干个防御系统组成的。两......
  • ACM输入输出模板(上)【Java、C++版】
    文章目录1、多行输入,每行两个整数C++Java2、多组数据,每组第一行为n,之后输入n行两个整数C++Java3、输入若干行,每行输入两个整数,遇到特定条件终止C++Java4、若干行输⼊,遇到0终止,每行第⼀个数为N,表示本行后面有N个数C++Java5、若干行输入,每行包括两个整数a和b,由空格分隔......
  • C++语言之旅【3】---引用(很重要的知识点!!!)
    本章概述引用彩蛋时刻!!!引用引用的概念:引用就是给变量取个新的别名。引用的定义格式:类型&别名=引用对象。给大家用代码展示一下引用的格式://引用的格式:inta=0;int&b=a; //b就是a的引用,就相当于给a取别名为b引用解释:引用不是新定义一个变量,只是给变量取个......
  • C/C++头文件以及避免头文件包含造成的重定义方法
    头文件是扩展名为 .h 的文件,包含了C函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。在程序中要使用头文件,需要使用C预处理指令 #include 来引用它。前面我们已经看过 stdio.h 头文件,它是编译器自带的头文件。......
  • 【C++算法】21.二分查找算法_山脉数组的峰顶索引
    文章目录题目链接:题目描述:解法C++算法代码:图解题目链接:852.山脉数组的峰顶索引题目描述:解法暴力解法:若:arr=[0,1,2,3,2,1,0]可以定义一个指针指向第一个元素,如果它后面的元素比它大,那么他就不是峰值。当第一次遇到一个数是大于后面那个数的时候,那个数就......
  • 【C++习题】22.二分查找算法_寻找峰值
    文章目录题目链接:题目描述:解法C++算法代码:图解题目链接:162.寻找峰值题目描述:解法暴力解法:三种山峰的情况开始元素比它后面一个元素大的话直接就是山峰了(因为nums[-1]=nums[n]=-∞)普通山峰最后一个元素比前面一个元素大的话直接就是山峰了二分算......
  • [C++][CMake][Error] set_target_properties called with incorrect number of argume
    1简介这篇文章将探讨了在使用CMake构建C++项目时,调用set_target_properties函数时参数数量不正确所引发的问题。2错误案例以下为可能发生错误的案例include_directories(${CMAKE_SOURCE_DIR}/common)find_package(Threads)add_library(libusbmuxdSHAREDlibusbm......