14726번 - 신용카드 판별
그냥 자릿수를 파악하면서 단순 계산을 통해 풀 수 있는 문제,
처음에는 string 변수를 이용해서 풀려다가, long long 으로 16자리 충분히 커버가 되므로
그냥 숫자를 이용해서 문제를 풀었다
<정답 코드>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #include<iostream> #include<string> using namespace std; int main() { int tc; scanf("%d", &tc); while (tc--) { long long n; scanf("%lld", &n); long long ans = 0; int i = 0; while (n > 0) { i++; if (i % 2 == 0) { int tmp = n % 10; tmp *= 2; if (tmp >= 10) { ans += tmp / 10; ans += tmp % 10; } else { ans += tmp; } n /= 10; } else { ans += n % 10; n /= 10; } } if (ans % 10 == 0) { printf("T\n"); } else { printf("F\n"); } } return 0; } | cs |
반응형