L2-029 特立獨行的幸福 (25 分)

考試的時候沒做出來,當時太心急了..
當然現(xiàn)在也還沒做出來qaq,差最后一個測試點沒過,目前還沒發(fā)現(xiàn)問題所在(19-4-9)

題目鏈接:
https://pintia.cn/problem-sets/994805046380707840/problems/1111914599412858886

解題思路:
注釋給的很清晰了,這里再畫給圖
(我個人偏愛的標記方式是-=999999和+=1)
![$9238HKM6]`0FNAK5VKGR2H.png](https://upload-images.jianshu.io/upload_images/16989852-4f44e6c81699ba5f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

沒有ac的代碼:

#include<stdio.h>
#include<math.h>                //獨立性就是中轉(zhuǎn)次數(shù)(素數(shù)*2)
#include<string.h>
int num[100005]={0},flag[100005]={0},TIMES[100005]={0},sad=0;
int aa,bb; 

int prime(int a)                //判斷素數(shù) 
{
    for(int i=2;i<=sqrt(a);i++)
        if(a%i==0)
            return 1;           //返回1不是素數(shù) 
    return 0;                   //返回0是素數(shù) 
} 

void judge(int a)
{   
    memset(flag,0,10005);           //flag數(shù)組用于判斷對a是否回頭路 
    int times=0,A=a,tag=0;
    
    while(a!=1)
    {
        int sum=0;
        while(a)
        {
            sum=sum+pow((a%10),2);
            a/=10; 
        }   
        
        a=sum;
        times++;
        if(flag[a]==1||num[a]==-1)              //不走回頭路,也不走前人摔下的路 
        {
            tag=1;
            num[A]=-1; 
            break;
        } 
        flag[a]=1;
    }
    
    if(tag==1)
        return;
        
    if(prime(A))            //不是素數(shù)
        TIMES[A]=times;     
    else                    //素數(shù)
        TIMES[A]=2*times;       

    for(int i=aa;i<=bb;i++)
    {
        if(i==A)
            continue;
        if(flag[i]==1)
            num[i]-=9999999;                //num[i]是負數(shù)表示是被用過的數(shù)字 
    }

    num[A]+=1;                          //負多正少是扭轉(zhuǎn)不了什么的 
} 

int main()
{
    scanf("%d%d",&aa,&bb);
    
    for(int i=aa;i<=bb;i++)
        judge(i);                   
    
    for(int i=aa;i<=bb;i++)         
        if(num[i]>0)                    //不許依附于其它幸福數(shù)
        {
            printf("%d %d\n",i,TIMES[i]);
            sad=1;
        }
            
    if(sad==0)
        printf("SAD");
    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容