#20790: 請求大神解惑關於TLE的問題(C)


fire5386 (becaidorz)

學校 : 國立清華大學
編號 : 115822
來源 : [140.114.253.147]
最後登入時間 :
2024-10-03 15:39:22
a159. 11743 - Credit Check -- UVa11743 | From: [114.45.0.44] | 發表日期 : 2020-03-07 11:35

不斷出現TLE,不知道有沒有大神能幫忙解惑?

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int getDigit(int, int);

int main(void) {
int data, num[4];
scanf("%d", &data);
for(int i=0;i<data;i++) {
scanf("%d%d%d%d", &num[0], &num[1], &num[2], &num[3]);
int arr[8];
for(int i=0;i<4;i++) {
arr[i]=getDigit(num[i], 4)*2;
arr[i+4]=getDigit(num[i], 2)*2;
}
int sum=0;
for(int i=0;i<8;i++) {
sum+=getDigit(arr[i], 2);
sum+=getDigit(arr[i], 1);
}
int sum2=0;
for(int i=0;i<4;i++) {
sum+=getDigit(num[i], 3);
sum+=getDigit(num[i], 1);
}
if((sum+sum2)%10==0) {
printf("Valid\n");
} else {
printf("Invalid\n");
}
}

return 0;
}

int getDigit(int num, int digit) {
if(digit==1) {
return num%10;
}
if(digit==2) {
return (num%100-num%10)/10;
}
if(digit==3) {
return (num%1000-num%100)/100;
}
if(digit==4) {
return (num%10000-num%1000)/1000;
}
}

 
ZeroJudge Forum