#36899: 為甚麼是錯的!?


tommyyang1025@gmail.com (Tommy Yang)

學校 : 不指定學校
編號 : 168835
來源 : [60.248.154.141]
最後登入時間 :
2024-02-27 16:52:21
b537. 分數運算-1 -- 老師的教甄題 | From: [180.176.188.112] | 發表日期 : 2023-08-15 21:47

#include <bits/stdc++.h>
using namespace std;
#define int long long int
signed main(){
    int a,b;
    while(cin>>a>>b){
        vector<bool> steps;
        while(b!=1){
            if(a>b){
                a-=b;
                steps.push_back(true);
            }
            else{
                swap(a,b);
                steps.push_back(false);
            }
        }
        int ans = pow(2,a-1);
        for(int i = steps.size()-1 ; i>=0 ; i--){
            if(steps[i]){
                ans*=2;
            }
            else{
                ans+=1;
            }
        }
        cout<<ans<<endl;
    }
    
    return 0;
}

 
ZeroJudge Forum