程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu 2054 A == B ?

hdu 2054 A == B ?

編輯:C++入門知識

hdu 2054 A == B ?


A == B ?

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 64227 Accepted Submission(s): 10057


Problem Description Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".
Input each test case contains two numbers A and B.

Output for each case, if A is equal to B, you should print "YES", or print "NO".
Sample Input
1 2
2 2
3 3
4 3

Sample Output
NO
YES
YES
NO題目大意:看a是不是等於b
思路:分很多種情況,有符號無符號,或者0.1 和 .1是相等的,還要注意沒有用的0
	 我把前邊後邊沒用的0都去掉,再分情況判斷符號的問題,小數點的問題,代碼
	 好長,有個很短的代碼,也過了,但是01和1,+1和1,等很多情況測試都不對,但是
	 居然對了!,,,不太理解。附上大神超短代碼。
2014,11,9
這題真煩人!
#include
#include
char a[150000],b[150000],c[150000],d[150000];
int main(){
	int i,j,k,l,lena,lenb;
	while(scanf("%s%s",a,b)!=EOF){
		lena=strlen(a);lenb=strlen(b);
		for(i=0;i=0;j--){
					if(a[j]!='0'){
						a[j+1]='\0';
						break;
					}
				}
				if(a[j]=='.')
					a[j]='\0';
				break;
			}		
		}//把小數後邊沒用的0去掉 
		for(i=0;i=0;j--){
					if(b[j]!='0'){
						b[j+1]='\0';
						break;
					}
				}
				if(b[j]=='.')
					b[j]='\0';
				break;
			}		
		}//把小數後邊沒用的0去掉
		if(strcmp(a,b)==0) printf("YES\n");
		else if((a[0]=='+'&&b[0]=='-')||(a[0]=='-'&&b[0]=='+'))//符號不一樣的情況 
			printf("NO\n");
		else if((a[0]=='+'&&b[0]=='+')||(a[0]=='-'&&b[0]=='-')){//符號一樣的情況 
			for(i=1;i
#include 
char a[150000],b[150000];
void f(char *s){
	int lens;
	lens=strlen(s);
	if(strchr(s,'.')!=NULL)	{
		while(s[--lens]=='0') ;
		if(s[lens]=='.') lens--;
		s[lens+1]='\0';
	}
}
int main(){
	while(scanf("%s%s",a,b)==2){
		f(a);
		f(b);
		if(strcmp(a,b)==0) printf("YES\n");
		else printf("NO\n");
	}
	return 0;
} 





  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved