• 两个面试题仅供娱乐,切勿模仿


    代码包括两个题

    1. 返回两个int型数中的较大者,不准用关系运算符,不准用if, while, for等语句

    2. 一句代码求字符串长度

    代码
     1 #include <iostream>
     2 using namespace std ;
     3 
     4 // return the sign of a number, 0 for '+', 1 for '-'
     5 int signof(int num)
     6 {
     7     return unsigned(num) >> (sizeof(int* 8 - 1) ;
     8 }
     9 
    10 // compare two numbers without using relational operators, return the max number
    11 int MaxNum(int a, int b)
    12 {
    13     int p[2= {a, b} ;
    14     return p[signof(a - b)] ;
    15 }
    16 
    17 // one clause to return the length of a string
    18 unsigned int StrLen(char *s)
    19 {
    20     return s == NULL || *== '\0' ? 0 : StrLen(s + 1+ 1 ;
    21 }
    22 
    23 int main(void)
    24 {
    25     
    26     cout << MaxNum(10-1<< endl ;
    27 
    28     char *= "hello world" ;
    29     cout << StrLen(p) << endl ;
    30 
    31     system("pause") ;
    32     return 0 ;
    33 }

    其实第一题也可以用一句代码实现

    1 int MaxNum(int a, int b)
    2 {
    3     return (a - b) >> (sizeof(int* 8 - 1? b : a ;
    4 }
    5 

    但凡要求用一句代码实现的题目,基本上都用到三目运算符或者递归

  • 相关阅读:
    java 多线程 CountDownLatch用法
    android的消息处理机制(图+源码分析)——Looper,Handler,Message
    Handler 总结
    Android常用UI编程_TextView实现跑马灯效果
    Android常用UI编程_TextView实现Activity转变
    Android常用UI编程_TextView显示图片和文字(包含超链接)
    Http编程 ___ 1
    Iterator用法
    增强型for循环
    Android_文件下载
  • 原文地址:https://www.cnblogs.com/graphics/p/1680895.html
Copyright © 2020-2023  润新知