hdu 2206 IP的计算

来源:互联网 发布:炉石淘宝卡包靠谱吗 编辑:程序博客网 时间:2024/06/05 11:17

A的很是狼狈;

给一些测试数据吧:

123.00123.123.123            YES

123.123.0.123                     YES

123.123..123                        NO

a12.123.123.123                NO

123.123.123.256                 NO

#include<iostream>#include<string>using namespace std;char a[110];int b[110];int main(){while(gets(a) != NULL){int l, i, j;bool pp = false;l = strlen(a);a[l] = '.';a[l+1] = NULL;int k = 0;for(i = 0; i <= l; i++){if(a[i] == '.')b[k++] = i;if(k > 4){pp = true;break;}if(a[i] < '0' || a[i] > '9'){if(a[i] != '.'){pp = true;break;}}}if(i > l && k < 4)pp = true;if(b[0] > 3)pp = true;for(i = 1; i < 4; i++){if(a[i] - a[i]-1 > 4){pp = true;break;}}int num = 0;for(i = 0; i < b[0]; i++){num *= 10;num += a[i] - '0';}if(num > 255)pp = true;if(pp == true){printf("NO\n");continue;}k = 0;for(j = 0; j < 3; j++, k++){num = 0;if(b[k+1] - b[k] == 1){printf("NO\n");break;}for(i = b[k]+1; i < b[k+1]; i++){num *= 10;num += a[i] - '0';}if(num > 255){printf("NO\n");break;}}if(j >= 3)printf("YES\n");}return 0;}


原创粉丝点击