http://codeforces.com/problemset/problem/317/Ajava
題意:給兩個數字,能夠兩數相加去替換其中一個數字。問要作多少次,可讓兩個數字鐘至少一個 >= 目標數字m,輸出次數,不可能的話輸出-1spa
比較簡單的題目,用來練習JAVA,代碼寫得有點,呵呵................code
import java.util.*; public class Main{ static long max(long x , long y){ return x > y ? x : y; } static long solve(long a ,long b ,long c){ long res = 0; while( (a >= c || b >= c) == false){ long sum = a + b; long Max = max(a , b); a = sum; b = Max; res++; } return res; } static long __solve(long a , long b , long c){ long res = (-b + a - 1) / a; long tmp = b + res * a; res += solve(a,tmp,c); return res; } public static void main(String[] args){ Scanner cin = new Scanner(System.in); long a,b,c,res; a = cin.nextLong(); b = cin.nextLong(); c = cin.nextLong(); if(a >= c || b >= c) res = 0; else if(a <= 0 && b <= 0) res = -1; else if(a >= 0 && b >= 0){ res = solve(a,b,c); } else{ long tmp; if(a < b){ tmp = a; a = b; b = tmp; } res = __solve(a,b,c); } System.out.println(res); } }