| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么这道简单题都不停的wa,有什么陷阱?太受打击了#include<iostream>
#include<cstring>
#define max(a,b) (a>b?a:b)
using namespace std;
short str[600][1000]={0};
void plus_(short* s1,short* s2,short*res){
int len=max(s1[0],s2[0]);
int i;
for(i=1;i<=len;i++){
res[i]+=(s1[i]+s2[i])%10;
res[i+1]+=(s1[i]+s2[i])/10;
}
if(res[len+1]!=0)len++;
res[0]=len;
}
int compare(short*s1,short*s2){
int i;
if(s1[0]<s2[0])return -1;
else if(s1[0]>s2[0])return 1;
int len=s1[0];
for(i=len;i>=1;i--){
if(s1[i]>s2[i])return 1;
else if(s1[i]<s2[i])return -1;
}
return 0;
}
void ini(){
str[1][0]=1;
str[1][1]=1;
str[2][0]=1;
str[2][1]=2;
int i=3;
while(i<600){
plus_(str[i-1],str[i-2],str[i]);
/* for(int j=str[i][0];j>=1;j--){
cout<<str[i][j];
}
cout<<endl; */
i++;
}
}
int main(){
int i,j;
ini();
short s1[1000],s2[1000];
char _s1[1000],_s2[1000];
short end[1000]={1};
int len_1,len_2;
//scanf("%s %s",_s1,_s2);
cin>>_s1>>_s2;
len_1=strlen(_s1);
len_2=strlen(_s2);
s1[0]=len_1;
for(i=1;i<=len_1;i++){
s1[i]=_s1[len_1-i]-'0';
}
s2[0]=len_2;
for(i=1;i<=len_2;i++){
s2[i]=_s2[len_2-i]-'0';
}
while(compare(s1,end)!=0||compare(s2,end)!=0){
int num_1,num_2;
int n=1;
while(compare(str[n],s1)<0){
n++;
}
num_1=n-1;
if(n>1)n--;
while(compare(str[n],s2)<=0){
n++;
}
num_2=n-1;
/* for(i=s1[0];i>=1;i--){
cout<<s1[i];
}
cout<<endl;
for(i=s2[0];i>=1;i--){
cout<<s2[i];
}
cout<<endl; */
//cout<<num_1<<' '<<num_2<<endl;
cout<<num_2-num_1<<endl;
//scanf("%s %s",_s1,_s2);
cin>>_s1>>_s2;
len_1=strlen(_s1);
len_2=strlen(_s2);
s1[0]=len_1;
for(i=1;i<=len_1;i++){
s1[i]=_s1[len_1-i]-'0';
}
s2[0]=len_2;
for(i=1;i<=len_2;i++){
s2[i]=_s2[len_2-i]-'0';
}
}
system("pause");
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator