一、求极差 / 最大跨度值
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,tmp,mx=-10086,mn=10086;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int tmp;
scanf("%d",&tmp);
mx=max(tmp,mx);
mn=min(tmp,mn);
}
printf("%d",mx-mn);
return 0;
}
二、最长连号
#include<bits/stdc++.h>
#define INF 10234567
using namespace std;
int main()
{
int n,arr[1001],count=1,max=-INF;
cin>>n;
for(int i=1;i<=n;i++)
cin>>arr[i];
for(int i=1;i<=n;i++)
{
if(arr[i+1]-arr[i]==1)
count++;
else
count=1;
if(count>max)
max=count;
}
cout<<max;
}
三、质因数分解
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;//依题意得,n肯定不是质数,并且输入的n是两个质数的积
//所以只需讨论更大的质数的值即可,不需要考虑n是否是两个质数的积
cin>>n;
for(int i=2;i<sqrt(n);i++)
//只需要判断根号n前的数即可,减少代码运算量
//如21=3*7,3肯定小于√21
{
if(n%i==0)
{
cout<<n/i;
break;
}
}
return 0;
}