Szuflada - Karta kredytowa
Czy numer karty się zgadza?
function(cardno){ wynik <- logical(length(cardno)) for(p in 1:length(cardno)){ CARDNO <- cardno[p] CARDNO <- gsub(" ","",CARDNO) CARDNO <- gsub("-","",CARDNO) wagi <- rep(c(2,1), length.out=16) if(nchar(CARDNO) > 16){ wynik[p] <- FALSE }else{ roznica = 16 - nchar(CARDNO) suma = "" for (i in nchar(CARDNO):1){ suma <- paste(as.numeric(substr(CARDNO,i,i))*wagi[i+roznica],suma, sep="") } sk = 0 for(i in 1:nchar(suma)){ sk <- sk + as.numeric(substr(suma,i,i)) } sk <- sk %% 10 if (sk == 0){ wynik[p] <- TRUE }else{wynik[p] <- FALSE} } } return(wynik) }