HDu 2206 IPの計算シミュレーション
IPの計算
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7980 Accepted Submission(s): 1570
Problem Description
インターネットの授業で、IPに関する多くの知識を学びました.IPのフルネームはインターネットプロトコルと呼ばれて、时には私达はまたIPで私达のIPネットワークのアドレスを指して、今IPV 4の下で1つの32ビットの符号のない整数で表して、一般的に点分けの方式で表示して、点はIPアドレスを4つの部分に分けて、各部分は8ビットで、1つの符号のない整数を表して(そのためプラス記号で现れる必要はありません)、例えば192.168.100.16、私达のとても熟知しているIPアドレスで、1つのIPアドレス列にスペースは表示されません(32数字で表すため).
しかし、不注意な私は、よくIPアドレスを書き間違えて、今あなたがプログラムで判断する必要があります.
Input
複数のcaseが入力され、各caseには100文字を超えない行があります.
Output
各caseについて,入力したIPが正しいか否かを判断し,YESが正しく入力されている場合はNOとする.
Sample Input
Sample Output
中国語はやはりすべて読むことができて、私は注意しなければならないのをすべて備考して書きました.
waは何度もやったが,この問題はあまりにも試練に細心の注意を払った.
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7980 Accepted Submission(s): 1570
Problem Description
インターネットの授業で、IPに関する多くの知識を学びました.IPのフルネームはインターネットプロトコルと呼ばれて、时には私达はまたIPで私达のIPネットワークのアドレスを指して、今IPV 4の下で1つの32ビットの符号のない整数で表して、一般的に点分けの方式で表示して、点はIPアドレスを4つの部分に分けて、各部分は8ビットで、1つの符号のない整数を表して(そのためプラス記号で现れる必要はありません)、例えば192.168.100.16、私达のとても熟知しているIPアドレスで、1つのIPアドレス列にスペースは表示されません(32数字で表すため).
しかし、不注意な私は、よくIPアドレスを書き間違えて、今あなたがプログラムで判断する必要があります.
Input
複数のcaseが入力され、各caseには100文字を超えない行があります.
Output
各caseについて,入力したIPが正しいか否かを判断し,YESが正しく入力されている場合はNOとする.
Sample Input
192.168.100.16
Sample Output
YES
中国語はやはりすべて読むことができて、私は注意しなければならないのをすべて備考して書きました.
waは何度もやったが,この問題はあまりにも試練に細心の注意を払った.
#include<stdio.h>
#include<string.h>
char a[200];
bool check()
{
int tem=-1,i;
int sum=0;
int count=0;
for(i=strlen(a)-1;a[i]==' ';i--)//
a[i]=0;
for(i=0;a[i]!=0;i++)
{
if(a[i]>='0'&&a[i]<='9')// tem,count
{
if(tem==-1)
tem=0;
tem*=10;
tem+=a[i]-'0';
count++;
}
else if(a[i]!='.')// .
return 0;
if(a[i]=='.'||a[i+1]==0)// , 。
{
sum++;
if(tem<0||tem>255)// -1
return 0;
tem=-1;
if(count>3)//
return 0;
count=0;
}
if(a[i]=='.'&&a[i+1]==0)//
return 0;
}
if(sum==4)// ;
return 1;
else
return 0;
}
int main()
{
while(gets(a)!=NULL)
{
if(check())
puts("YES");
else
puts("NO");
}
return 0;
}