#37444: all of log N 速解法(數論篇)


jonshinan (unknown)

學校 : 國立高雄師範大學附屬高級中學
編號 : 180352
來源 : [114.40.51.171]
最後登入時間 :
2024-04-24 21:09:11
f348. 完全偶數 -- 板橋高中教學題 | From: [36.239.113.206] | 發表日期 : 2023-09-09 15:08

#include <iostream>
#include <stdio.h>
int final;
using namespace std;


int main()
{
 int n,a[7],r,f;
 scanf("%d",&n);
 for(int i=10,k=1;i<=1000000;i=i*10,k++)
 {
    a[k]=((n%i)-n%(i/10))/(i/10); 

 }

 for(int i=6;i>=1;i--)
 {
     if(a[i]%2==1)
     {
       if(a[i]!=9)
       {
           a[i]++;
           for(int k=1;k<i;k++)
           {
               a[k]=0;
           }
            r=0;
           for(int k=1,p=1;k<=6;k++,p=p*10)
           {
               r=a[k]*p+r;
           }
           
           a[i]=a[i]-2;
            for(int k=(i-1);k>=1;k--)
           {
               a[k]=8;
           }
           int f=0;
           for(int k=1,p=1;k<=6;k++,p=p*10)
           {
               f=a[k]*p+f;
           }
           
           if((r-n)<(n-f))
           {
               final=r-n;
           }
           else
           {
               final=n-f;
               break;
           }
       }
       else
       {
           a[i]--;
            for(int k=(i-1);k>=1;k--)
           {
               a[k]=8;
           }

           for(int k=1,p=1;k<=6;k++,p=p*10)
           {
               final=a[k]*p+final;
           }
           final=n-final;
           break;
       }
     }
 }

printf("%d",final);

 
 
}

 
ZeroJudge Forum