#include <iostream>
using namespace std;
bool t[1000000]={0};
int f(int n){
if(n==0){
return 0;
}
else if(n==1){
return 1;
}
else{
return f(n-2)+f(n-1);
}
}
void Set(){
for(int i=0;i<1000;i++){
int g=f(i);
if(g>=1000000){
break;
}
else{
t[g]=true;
}
}
}
int main(){
Set();
int k;
while(cin>>k){
for(int p=0;p<k;p++){
int a,b;
cin>>a>>b;
if(a>b){
int g=b;
b=a;
a=g;
}
int count=0;
for(int i=a;i<=b;i++){
if(t[i]){
cout<<i<<endl;
if(i==1){
cout<<1<<endl;
count++;
}
count++;
}
}
cout<<count<<endl;
cout<<"------"<<endl;
}
}
}
基本上判斷沒什麼問題,我自己測試輸出都正常,依照題意加上分隔線卻吃了OLE
可以請高手幫我檢查哪邊出錯嗎?
#include
using namespace std;
bool t[1000000]={0};
int f(int n){
if(n==0){
return 0;
}
else if(n==1){
return 1;
}
else{
return f(n-2)+f(n-1);
}
}
void Set(){
for(int i=0;i<1000;i++){
int g=f(i);
if(g>=1000000){
break;
}
else{
t[g]=true;
}
}
}
int main(){
Set();
int k;
while(cin>>k){
for(int p=0;p<k;p++){
int a,b;
cin>>a>>b;
if(a>b){
int g=b;
b=a;
a=g;
}
int count=0;
for(int i=a;i<=b;i++){
if(t[i]){
cout<<i<<endl;
if(i==1){
cout<<1<<endl;
count++;
}
count++;
}
}
cout<<count<<endl;
cout<<"------"<<endl;
}
}
}
基本上判斷沒什麼問題,我自己測試輸出都正常,依照題意加上分隔線卻吃了OLE
可以請高手幫我檢查哪邊出錯嗎?
已經不用了,我發現最後一筆不用加分隔線....
害我找了好久