网络故障诊断命令实训总结(每日一练:排查网络故障)

题目描述

A地跟B地的网络中间有n个节点(不包括A地和B地),相邻的两个节点是通过网线连接。正常的情况下,A地和B地是可以连通的,有一天,A地和B地突然不连通了,已知只有一段网线出问题(两个相邻的节点)小明需要排查哪段网线出问题。他的排查步骤是:1。 选择某个中间节点 2。 在这个节点上判断跟A地B地是否连通,用来判断那一边出问题

请问小明最少要排查多少次,才能保证一定可以找到故障网线

输入描述:

一个正整数 n (n <= 10^18),表示A地和B地之间的节点数

输出描述:

输出一个数字,代表保证一定可以找到故障网线的前提下,小明最少要排查多少次

思路分析:二分查找

网络故障诊断命令实训总结(每日一练:排查网络故障)(1)

做这种编程题最好画图理解更透彻

c 代码实现

#include <iostream> #include <string> #include <sstream> #include <vector> int solution(long int n){ int result; // TODO: int len=0; n=n 2; long int low=1; long int high=n; long int mid=(low high)/2; while(mid!=(n-1)){ len=len 1; low=mid; mid=(low high)/2; } result=len 1; return result; } int main() { long int n; std::cin>>n; int result = solution(n); std::cout<<result<<std::endl; return 0; }

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页