HJ33 整数与IP地址间的转换【牛客网】

文章目录

零、原题链接

HJ33 整数与IP地址间的转换

一、题目描述

二、测试用例

三、解题思路

  1. 基本思路:
      利用 IP 地址和整数的转换规则,IP 地址 → \rightarrow → 整数,每个数字乘对应位权的累加和;整数 → \rightarrow → IP地址,不断除以位权;
  2. 具体思路:
    • IP 地址 → \rightarrow → 整数,分割 IP 地址,第 i 个数字的位权为 256 4 − i 256^{4-i} 2564−i
    • 整数 → \rightarrow → IP 地址,除以对应位权,商作为第 i 个数字,余数用于求下一个数字。

四、参考代码

时间复杂度: O ( 1 ) \Omicron(1) O(1)

空间复杂度: O ( 1 ) \Omicron(1) O(1)

cpp 复制代码
#include <cmath>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main() {
    stringstream ss;
    string str;

    cin >> str;
    ss << str;

    long num = 0;
    long t = 256 * 256 * 256;
    while (getline(ss, str, '.')) {
        num += stoi(str) * t;
        t /= 256;
    }

    cout << num << endl;

    cin >> num;
    str = "";
    t = 256 * 256 * 256;
    for (int i = 0; i < 3; i++) {

        str += to_string(num / t) + ".";
        num %= t;
        t /= 256;
    }
    str += to_string(num);

    cout << str << endl;
}
// 64 位输出请用 printf("%lld")
相关推荐
艾莉丝努力练剑9 分钟前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
C++、Java和Python的菜鸟2 小时前
第六章 统计初步
算法·机器学习·概率论
Cx330❀2 小时前
【数据结构初阶】--排序(五):计数排序,排序算法复杂度对比和稳定性分析
c语言·数据结构·经验分享·笔记·算法·排序算法
散1122 小时前
01数据结构-Prim算法
数据结构·算法·图论
起个昵称吧2 小时前
线程相关编程、线程间通信、互斥锁
linux·算法
阿巴~阿巴~2 小时前
深入解析C++ STL链表(List)模拟实现
开发语言·c++·链表·stl·list
myzzb3 小时前
基于uiautomation的自动化流程RPA开源开发演示
运维·python·学习·算法·自动化·rpa
旺小仔.3 小时前
双指针和codetop复习
数据结构·c++·算法
jingfeng5144 小时前
C++ STL-string类底层实现
前端·c++·算法
郝学胜-神的一滴4 小时前
基于C++的词法分析器:使用正则表达式的实现
开发语言·c++·程序人生·正则表达式·stl