蓝桥杯学习记录8
一:测试练习
问题描述
求出区间[a,b]中所有整数的质因数分解。
输入格式
输入两个整数a,b。
输出格式
每行输出一个数的分解,形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看样例)
解题思路:
重要思想是找到范围内的素数,存储到数组中去。
具体代码:
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
void su(int n)
{
for(int i=2;i<=n;i++)
{
if(n%i==0)
{
n/=i;
if(n==1)
cout<<i<<endl;
else
cout<<i<<"*";
i--;
}
}
}
int main(){
int m,n;
cin>>m>>n;
for(int i=m;i<=n;i++)
{
cout<<i<<"=";
su(i);
}
return 0;
}
二:视频练习:
视频名称及链接
https://www.bilibili.com/video/BV1jE411g76D?p=9
常用STL视频讲解
学习心得:
我们常说的STL库,实现了集合,映射表,栈,队列等数据结构和排序,查找等算法,我们可以很方便的使用STL库来减少我们的代码量。
C++中动态数组用vector,直接构建vector语句为:vector vec。这样我们就定义了一个名为vec的存储T类型数据的动态数组,我们可以通过push_back()方法在数组的最后面插入一个新的元素。可以通过size()方法来获取vector的长度,通过 []操作直接访问vector中的元素,可以通过pop_back()方法来删除动态数组的最后一个元素。
利用动态数字可以存储自定义的数据,例如:
struct Student{
string name;
int age;
}
int main(){
vector<Student>class1;
Student stu1,stu2;
stu1.name = "xiaohong";
stu1.age=12;
stu2.name = "xiaoming";
stu2.age=14;
class1.push_back(stu1);
class1.push_back(stu2);
return 0;
}