字节跳动第3题IP还原

//我第三题的思路就是穷举,看每次分段满足IP地址的限定。
//穷举的过程是通过取余来判定满足与否的。
//下面这个代码错误出在哪里,还请大佬明示???


#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
    long long IP_BUG;
    cin >> IP_BUG;
    long long temp = IP_BUG;
    int weishu = 0;
    while (temp)
    {
        temp /= 10;
        weishu++;
    }


    int result = 0;

    long long temp2 = IP_BUG;
    int max = 256;

    for (int i = 1; i < weishu; i++)
    {
        for (int j = i+1; j < weishu; j++)
        {
            for (int k = j+1; k < weishu; k++)
            {
                temp2 = IP_BUG;
                if (temp2 % (10 ^ i) < max)
                {
                    temp2 /= (10 ^ i);
                    if (temp2 % (10 ^ (j-i)) < max)
                    {
                        temp2 /= (10 ^ (j - i));
                        if (temp2 % (10 ^ (k - j)) < max)
                        {
                            temp2 /= (10 ^ (k - j));
                            if (temp2 < max)
                            {
                                result++;
                            }
                        }
                            
                    }

                }
            }
        }
    }




    
    cout << result<<endl;
    system("pause");
}

#笔试题目##字节跳动##C/C++#
全部评论
给你另一个思路:想象字符之间有一个空格,这道题实际上就是从这些空格中选4个放点的问题,是否熟悉?就是排列组合。
点赞
送花
回复
分享
发布于 2018-09-09 12:57
读入是long long就已经不对了,会丢失信息的
点赞
送花
回复
分享
发布于 2018-09-09 13:07
网易互娱
校招火热招聘中
官网直投
取什么余,0-255之间
点赞
送花
回复
分享
发布于 2018-09-09 13:08
ijk范围错了,你这算法应该是找三个空吧,那第一个空能到weishu-1?明显只能到weishu-3
点赞
送花
回复
分享
发布于 2018-09-09 13:09

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务