#32674: C++ 題解 遞迴寫法


yck729 (yck729)

學校 : 中正國防幹部預備學校
編號 : 41505
來源 : [223.139.34.35]
最後登入時間 :
2024-05-01 22:51:16
j124. 3. 石窟探險 -- 2022年10月APCS | From: [140.127.160.138] | 發表日期 : 2022-10-26 09:37

#include<bits/stdc++.h> 
using namespace std;   

long long sum=0;

int f(){
    int n=0;
    cin >> n;
    if(n==0){       
       return n;
    }
    if(n!=0 && n%2==0){
        long long r=0,branch1=0,branch2=0;
        r=f();
        branch1=abs(n-r);
        if(branch1==n && r==0){branch1=0;}        
        r=f();
        branch2=abs(n-r);
        if(branch2==n && r==0){branch2=0;}
        sum=sum+branch1+branch2;        
    }
    if(n!=0 && n%2==1){
        long long r=0,branch1=0,branch2=0,branch3=0;
        r=f();
        branch1=abs(n-r);
        if(branch1==n && r==0){branch1=0;}
        r=f();
        branch2=abs(n-r);
        if(branch2==n && r==0){branch2=0;}
        r=f();
        branch3=abs(n-r);
        if(branch3==n && r==0){branch3=0;}
        sum=sum+branch1+branch2+branch3;
    }    
    return n;

}

int main(){
    f();
    cout<<sum;
}

 
ZeroJudge Forum