一、【问题描述】
如果一个数 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