我有這個代碼適用於大多數輸入,但也有一些引起我的錯誤。例如「-1000000000000000000 1 1000000000000000000」。我的代碼不適用於某些大數字
#include <iostream>
#include <cstdio>
using namespace std;
int x,y,m;
int aux=0;
int toPerfect(int a,int b,int per){
if(a >= per || b >= per){
aux=0;
}else if(a<=0 && b<=0){
aux = -1;
}else{
while(a < per && b < per){
if(a > b){
b = b+a;
}else{
a = a+b;
}
aux++;
}
}
return aux;
}
int main(){
cin >>x>>y>>m;
cout << toPerfect(x,y,m) << endl;
cin.get();
}
檢查你的系統上的sizeof(int)是什麼。如果是4,則不能存儲大於2^32 - 1的數字。 –
如何解決使用long long代替int的問題?我嘗試過,但沒有幫助。 – user3152299