2018 kick start roundA A Even_digits
生活随笔
收集整理的這篇文章主要介紹了
2018 kick start roundA A Even_digits
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述:
找出距離num最近的所有位都為偶數(shù)的數(shù),首先分為三部分
第一部分:
所有數(shù)都是偶數(shù),則返回0
第二部分:找big_num
如果存在奇數(shù),則判斷該奇數(shù)是不是9
- 不是9,則big_num為該位add 1,后面剩余位為0
- 為9,判斷前一位是不是8,不是8,則前一位add 2,后面剩余位為0
- 為9,且前一位為8,則距離最近的那個(gè)數(shù)就是small_num,即該位即以后所有位都為8
第三部分:找small_num
如果存在奇數(shù),則該位sub 1,后面剩余位都為8
# -*- coding: utf-8 -*- """ Created on Tue Jul 7 15:24:35 2020@author: natur """def check_bit_com_big(num):num = str(num)big_num_test=""big_num = ""for i in range(len(num)):num_bit = num[i:i+1]num_bit = int(num_bit)big_num_test +=str(num_bit)if num_bit in odd_list:big_num += big_num_test[0:i]num_bit = num_bit + 1big_num += str(num_bit)big_num += str(0)*(len(num)-i-1)breakreturn(big_num)def special_9_check_bit_com_big(num):num = str(num)big_num_test=""big_num = ""for i in range(len(num)):num_bit = num[i:i+1]num_bit = int(num_bit)big_num_test +=str(num_bit)if num_bit == 9:#mett_89if int(num[i-1:i]) == 8:big_num += big_num_test[0:i]num_bit = 8big_num += str(num_bit)big_num += str(8)*(len(num)-i-1)breakelse:pre_bit = int(num[i-1:i]) + 2big_num += big_num_test[0:i-1]big_num += str(pre_bit)big_num += str(0)*(len(num)-i)breakelif num_bit in odd_list:big_num += big_num_test[0:i]num_bit = num_bit + 1big_num += str(num_bit)big_num += str(0)*(len(num)-i-1)breakelse:return "0"return(big_num)def check_bit_com_small(num):num = str(num)small_num_test=""small_num = ""for i in range(len(num)):num_bit = num[i:i+1]num_bit = int(num_bit)small_num_test +=str(num_bit)if num_bit in odd_list:small_num += small_num_test[0:i]num_bit = num_bit - 1small_num += str(num_bit)small_num += str(8)*(len(num)-i-1)breakelse:return "0"return(small_num)def begin_num(num):big_num = int(special_9_check_bit_com_big(num))small_num = int(check_bit_com_small(num))big_button = big_num-numsmall_button = num-small_numif big_num == 0:true_button = 0elif big_button<0:true_button = small_buttonelse:true_button = min(big_button,small_button)return true_buttonif __name__ == "__main__":even_list = [0,2,4,6,8]odd_list = [1,3,5,7,9]round = int(input())for i in range(round):num = int(input())true_button = begin_num(num)print("Case #"+str(i+1)+":"+" "+str(true_button))test
總結(jié)
以上是生活随笔為你收集整理的2018 kick start roundA A Even_digits的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 论文笔记 | Improving neu
- 下一篇: [RealSense]2-实感摄像头与S