题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
#include <iostream>
#include <string.h>
using namespace std;
void toten(string s){
long long len=s.length(),ans=0,t;
char c;
for(int i=0;i<len;i++){
t=0;
while(1){
c=s[i];
if(c=='.'||i==len) break;
t=t*10+s[i]-'0';
i++;
}
ans=ans*256+t;
}
cout<<ans<<endl;
return;
}
void recall(long long num,int t){
if(num==0) return;
recall(num/256,1);
cout<<num%256;
if(t) cout<<'.';
}
void totwo(string s){
long long len=s.length(),ans=0,t;
char c;
t=0;
for(int i=0;i<len;i++)
t=t*10+s[i]-'0';
recall(t,0);
return;
}
int main() {
string s;
cin>>s;
toten(s);
cin>>s;
totwo(s);
return 0;
}
// 64 位输出请用 printf("%lld")
要用long long