iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 2
0
自我挑戰組

程式設計師大冒險系列 第 2

程式設計師大冒險_2/150_第二天順利面試

面試過二週後,我會再PO面試心得。
平常的話以刷題目為主,並會加一些我的見解。
更改部分段落,並修正版面。(2018/11/10修改)


【大綱】

  • 事件
    • 新店公司面試
    • 共享經紀公司面試

【事件】

【新店公司面試】

今天面試新店公司很順利,該事件會在二週後公布成功或失敗。
結果
無聲卡,但面試官有說沒錄取不會另外通知。(2018/11/10修改)

【Lala共享經紀公司面試】

獲得共享經濟公司主動邀請面試,等級為二顆星。
同意後,寄檔案來要求填寫心得。
筆試通過後,因時間因素,向對方請求面試延後。
結果
無回應,但是11月初又寄邀請面試。
不想重填心得,故拒絕面試。(2018/11/10修改)


10035 Primary Arithmetic

import sys

def inp():
    sinput = sys.stdin.readline()
    while sinput !="":
        sinput = sinput.replace("\r","").replace("\n","")
        num=sinput.split()
        if (int(num[0])+int(num[1]))==0:
            break
        carry(num[0],num[1])
        sinput = sys.stdin.readline()
    print("")

split()是將測資做切片,測資如果是326 567,你會得到num[326,567]

def carry(o,t):
    ne_ca=0
    carry=0
    o=list(o)
    t=list(t)
    if (len(o)>len(t)):
        min_nu=t
    else:
        min_nu=o

比測資一和測資二長度,取最短的作為運算次數。像是22304和56,這個最多只會進位三次,後面就不用比了。

    for i in range(len(min_nu)):
        if ((int(o.pop())+int(t.pop())+ne_ca)>9):
            carry+=1
            ne_ca=1
        else:
            ne_ca=0
    if (ne_ca==1):
        if (o!=[]):
            if (int(o.pop())==9):
                carry+=1
        if (t!=[]):
            if (int(t.pop())==9):
                carry+=1
    pr(carry)

將測資一和測資二的尾數提出來,用int轉成數字後相加,大於9的話就會進位。
但是注意這次的相加,還要注意後面一位的數字。
345、256,如果沒注意到個位數進位,十位數進位很容易出錯。


def pr(ca):
    if ca==0:
        print('No carry operation.')
    elif ca == 1:
        print('%d carry operation.'%ca)
    else :
        print('%d carry operations.'%ca)

輸出題目要求三種方式
輸出三的operation要加s是陷阱


def main():
    inp()
    
main()

執行

  • 面試
  • 鐵人賽發文
    10035 - Primary Arithmetic這題uDebug有過,但是正式評判顯示Wrong answer。
    https://www.udebug.com/UVa/10035
    P.S.有再刷題,推薦用這個網頁
    接下來二週都有安排面試,符合每週至少面試一次要求,就取消每週至少投遞二家公司,專心刷題目以及準備客製化履歷。

上一篇
程式設計師大冒險_1/150_第一天就要完結篇?
下一篇
3/150_第三天練習刷題(Python)
系列文
程式設計師大冒險115

尚未有邦友留言

立即登入留言