今天谁一篇文章哈 !
由于本篇文章有些的题目只有图片,因此还望各位见谅。
目录
第一题
题目解析
代码原理
略
代码编写
填空技巧---巧用python
也许会有小伙伴有疑问,现在在讲的不是c++的题吗,咋又用python了?这也是博主给大家讲的填空题的第三个技巧,巧用python,这个技巧需要点python基础,因此如果是大一的小伙伴们可以暂时先不要用这个技巧了
第二题
题目解析
填空技巧---巧用python
第三题
题目链接
题目解析
必备知识
1字节 = 8比特位
1kb = 1024字节
1mb = 1024kb
1gb = 1024mb 依次类推
解题技巧
使用计算器计算
第四题
题目链接
题目解析
代码原理
代码编写
#include <iostream>
using namespace std;
int main()
{
// 请在此输入您的代码
long long n = 2021041820210418, sum = 0;
for(long long l = 1; l * l * l <= n; l++)//一条边的三次方要小于等于n
{
if(n % l == 0)//确定第一条边
{
for(long long w = l; w * w * l <= n; w++)//从l开始可以防止出现一些重复情况
{
if(n / l % w == 0)//确定第二条条边
{
long long h = n / l / w;//确定第三条边
//根据边的情况进行分类讨论
if(w == h && h == l) sum++;
else if(w == h || h == l || w == l) sum += 3;
else sum += 6;
}
}
}
}
cout << sum;
return 0;
}
第五题
题目解析
题意很容易理解
代码原理
法一:
先将输入的数字使用sort进行一次排序,再遍历数组,依次与最大值比较,大于最大值则count+1
法二:
直接遍历数组,与最大值进行比较大于最大值则count+1
法一是博主的第一个想法,但事后博主与同学交流后发现好像不需要排序也可以搞定
代码编写
法一:
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1000;
ll a[N];
int main()
{
int n = 0;
cin >> n;
for(ll i = 1; i <= n; i++)
{
cin >> a[i];
}
sort(a + 1, a + 1 + n);
ll max_val = -0x3f3f3f3f, sum = 0;
for(ll i = 1; i <= n; i++)
{
if(max_val < a[i]) {
sum++;
max_val = a[i];
}
}
cout << sum;
return 0;
}
法二:
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1000;
ll a[N];
int main()
{
int n = 0;
cin >> n;
for(ll i = 1; i <= n; i++)
{
cin >> a[i];
}
ll max_val = -0x3f3f3f3f, sum = 0;
for(ll i = 1; i <= n; i++)
{
if(max_val < a[i]) {
sum++;
max_val = a[i];
}
}
cout << sum;
return 0;
}
法一是考虑了乱序的情况,但是后来发现其实不考虑乱序好像也行
本次讲解就先到这,我们下期文章再见!