#15337: 見笑了! 高手可否點化點化


hshua (hshua)

學校 : 新北市立林口高級中學
編號 : 52506
來源 : [125.228.147.181]
最後登入時間 :
2025-07-10 20:33:08

這樣還是TLE !!!
見笑了! 高手可否點化點化

#include <iostream>
#include<string.h>
using namespace std;
typedef long long ll;
int cnt;
ll n,m,a,sum;
//--------------------------------------------
void Check(){
    if(m<=3) return;

    while(m>3 && a>3){
        if(sum==n) {
            cnt++;  
            m=(m+1)/2;
            a=m, sum=m;
        }
        else if(sum<n) { a--; sum+=a; }
        else if(sum>n) {
            m=(m+1)/2;
            a=m, sum=m;
        }
    }
}
//============================================
int main(){
    while(cin>>n){
        if(n==0) break;

        if(n%2==0 || n==1 || n==2) cout<<"0\n"; //偶數,無解
        else if(n==3) cout<<"1\n";
        else{//奇數
             cnt=1;
             m=(n+1)/2;
             a=m, sum=m;
             if(m>3) Check();
             
             cout<<cnt<<"\n";
        }
    }
}

 

 

 

#45189: Re: 見笑了! 高手可否點化點化


kaohoward (Kaniki)

學校 : 高雄市立高雄高級中學
編號 : 288265
來源 : [114.39.0.38]
最後登入時間 :
2025-10-05 18:41:54

我也tle...
不過想問一下為什麼偶數無解
像12就等於3+4+5啊?