你的位置:首页 > 操作系统

[操作系统]iOS面试中常见的算法题目


一、前言

  这里是在iOS求职中自己遇到的算法题,希望对大家有所帮助。不定期更新。如果大家想在线运行代码调试,可以将代码拷贝到这里。然后进行调试。下面就是常见的算法题目。

二、正文

1、就n的阶乘。

 思路:这里面用递归实现

#include <stdio.h>int getNJ(int n) {  if (n==1 || n==0) {    return 1;  }  return n*getNJ(n-1);}int main() {  printf("%d",getNJ(10));  return 0;}

运行结果如下:

3628800

 

2、判断一个字符串是否是ip。

 思路:先将字符串分割到两个数组里面(一个数字数组,一个字符数组),然后判断数字数组内容是否满足ip条件,字符数组里面是否是"."。这里面主要用了sscanf函数。代码如下:

#include <stdio.h>int checkIP(const char *p) {  int n[4];  char c[4];  if (sscanf(p,"%d%c%d%c%d%c%d%c",&n[0],&c[0],&n[1],&c[1],&n[2],&c[2],&n[3],&c[3])==7) {    int i;    for (i=0;i<3;i++) {      if(c[i]!='.') {        return 0;      }      }    for (i=0;i<4;i++) {      if (n[i]>255||n[i]<0) {        return 0;      }    }    return 1;      }else {    return 0;  }}int main() {   const char *x[] =   {    "132.168.1.1",    "10.0.0.1.",    "127.256.0.1",    "iudfdsfdasfdaf",    "172.16,2.1"  };  const char *m[] =   {    "不是合法的IP地址",     "是合法的IP地址"  };  int i=0;  while(x[i]!=0) {    printf("%s %s\n",x[i],m[checkIP(x[i])]);    i++;  }  return 0;  return 0;}

运行结果如下:

132.168.1.1 是合法的IP地址10.0.0.1. 不是合法的IP地址127.256.0.1 不是合法的IP地址iudfdsfdasfdaf 不是合法的IP地址172.16,2.1 不是合法的IP地址