************求循环节数知识储备***************

************求循环节数知识储备***************,第1张

************求循环节数知识储备***************

1、C++ find()函数用法(一般用于vector的查找

--find()函数主要实现的是在容器查找指定的元素,并且这个元素必须是基本数据类型的。

--查找成功时返回一个指向指定元素的迭代器,查找失败时返回end迭代器。

1)在数组中进行查找

#include
#include
#include
using namespace std;
int main()
{
   int nums[]={3,1,4,1,5,9};
   int nums_to_find=5;
   int start=0;
   int end=5;
   int *result=find(nums+start,nums+end,nums_to_find);
   if(result==nums+end)
   {
       cout<<"Did not find any number matching"< 

 

2)在容器中查找

#include
#include
#include
using namespace std;
int main()
{
   int num_to _find=25;
   int i;
   vectorv;
   for(i=0;i<10;i++)
   v.push_back(i*i);
   vector::iterator iter=std::find(v.begin(),v.end(),num_to_find);//返回的是一个迭代器指针
   if(iter==v.end())
   cout<<"ERROR"< 

 2、那么什么是vector呢?

作用:vector能够像容器一样存放各种类型的对象,也就是说vector能存放任意类型的动态数组,能够增加和压缩数据

1)如果表示的向量长度较长(需要向向量内保存很多数),容易导致内存泄露,而且效率低下;

2)vector作为函数的参数或者返回值时,需要注意它的写法:

double Distance(vector&a,vector&b)其中的“&”绝对不能少!!!!!

3)建立一个vector

vectortest;//建立一个vector,int为数组元素的类型,test为动态数组名

4)向数组中压入元素n

test.push_back(n);//此时test[0]就是n,

5)#include//需要加入头文件

6)使用下标访问该动态数组

cout<

7)使用迭代器访问元素

vector::iterator iter;

for(iter=test.begin();iter!=test.end();iter++)

cout<<(*iter)<

8)向该数组中第(i+1)元素前插入元素a

test.insert(test.begin()+i,a);

9)删除第(i+1)个元素

test.erase(test.begin()+i)

test.erase(test.begin()+i,test.end()+j);//删除区间【i,j-1】;

10)

test.size();//向量大小

11)

test.clear();//清空

12)

vector的元素不仅仅可以是int,double,string还可以是结构体,但是结构体必须定义为全局的,否则会出现错误;

13) 使用reversee翻转:需要加头文件#include

reverse(test.begin(),test.end());

14)  使用sort排序:需要头文件#include

sort(test.begin(),test.end());//按升序排列

3、蓝桥杯赛题实战

两个整数做除法,有时会才产生循环小数,其循环部分称为循环节。比如(11/13=0.8461584615.......)循环节为846153共有6位。

求循环节数:

#include
#include
#include
using namespace std;
int f(int n,int m)
{
	n=n%m;
	vectorv;
	for(;;)
	{
		v.push_back(n);
		n=n*10;
		n=n%m;
		if(n==0)
		return 0;
		if(find(v.begin(),v.end(),n)!=v.end())
		{
			return (int)(v.end()-find(v.begin(),v.end(),n));
		}
	}
}
int main()
{
	int n,m;
	cin>>n>>m;
	cout< 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5699678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存