iOS面試中常見的演算法題目,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地址