2017腾讯校招机试题

来源:互联网 发布:淘宝返利机器人骗局 编辑:程序博客网 时间:2024/05/22 00:20
  1. 给一个整数,求小于整数的质数对之和等于整数的个数。比如 给定num=10,有质数对(3,7),(5,5)两个质数对满足条件。

从最小的整数开始遍历,判断 i 和 num-i 两个数是不是质数。

bool zhishu(int num){     if(num==2)        return true;    if(num%2!=0)    {        for(int i=3;i<=sqrt(num*1.0);i=i+2)            if(num%i==0)                return false;        return true;    }    return false;   }void main(){    int num;    cin>>num;    int result=0;    if(zhishu(num-2))     {        result++;        cout<<'('<<2<<','<<num-2<<')';    }    for(int i=3;i<=num/2;i++)        if(zhishu(i)&&zhishu(num-i))            {                result++;                cout<<'('<<i<<','<<num-i<<')';            }    cout<<endl;    cout<<"质数对个数="<<result;}
  1. Geohash的初衷是如何用尽量短的URL来标志地图上的某个位置,而地图上的位置一般是用经纬度来表示,问题就转化为如何把经纬度转化为一个尽量短的URL。现在用来确定纬度的区间, 算法的主要思想是对某一数字通过二分法进行无限逼近,比如纬度的区间是[-90,90],假如给定一个纬度值:46.5,可以通过下面算法对46.5进行无限逼近:46.5>0,属于[0,90],赋值为1。。。
int main(){    double i=0;    cin>>i;    int num[2]={-90,90};    int j=0;    int flag[6];    int mid=0;    while(j<=5)    {        mid=(num[0]+num[1])/2;        if(i>=mid)        {            num[0]=mid;            flag[j++]=1;        }        else        {            num[1]=mid;            flag[j++]=0;        }    }    for(int j=0;j<=5;j++)        cout<<flag[j];}
0 0
原创粉丝点击