阿摩線上測驗 登入

申論題資訊

試卷:111年 - 111 經濟部所屬事業機構_新進職員甄試_資訊:1.資訊管理 2.程式設計#111338
科目:國營事業◆1.資訊管理 2.程式設計
年份:111年
排序:0

題組內容

五、A 公司 1 月人事資料檔案如下表,請撰寫下列程式片段。(2 題,共 15 分)
63564ca6bd3fe.jpg

申論題內容

(一) A公司員工代號共 6碼數字,第 6碼是前 5碼總和的個位數,請撰寫一函式 check_dit() ,以檢查員工代號之正確性。(7 分)

詳解 (共 4 筆)

詳解 提供者:肉圓室友

bool check_dit(int n){ //輸入6碼數字
    int tmp=n/10, sum=0;
    while(tmp){
        sum+=tmp%10;
        tmp/=10;
    }
    sum%=10; //第6碼
    if(sum==(n%10)) return true; 
    else return false;
}

詳解 提供者:Fourier
66d033f42f3c0.jpg
因為題目其中一個以A開頭
但看大部分詳解都沒有去針對出現非數字的部分除錯
但若有出錯的地方請多指教
下面主程式單純用來確認而已並非本題的範圍
下面是輸出的結果:
66d0340414ce7.jpg
詳解 提供者:Grace

boolean check_dit(int num[ ] ) {
    int len = num.length;    
    checking = num[len-1]%10;    
    
    if (len != 6) 
        return false
    else
        temp_sum = 0;
        for(int i =0; i < (len-2); i++)
            temp_sum += num[i];
        if(temp_sum == checking)
            return true;
        else 
            return false;    
}

詳解 提供者:polar33794

#include <math.h>
#include <stdbool.h>

bool check_id(int emp_id)
{
    int emp_id_Chk[6];
    int Sum_Chk=0;
    for(int y=5;y>=0;--y)
    {
        emp_id_Chk[y]=(emp_id/(int)pow(10,5-y))%10;
    }
    for(int z=0;z<5;++z)
    {
        Sum_Chk+=emp_id_Chk[z];
    }
    if((Sum_Chk%10)==emp_id_Chk[5])
        return true;
    else
        return false;
}