백준 1225. 이상한 곱셈
조건
만자릿수 이하의 두 자연수 A, B의
모든 각 자릿수들을 곱해서 더한 합이 이상한 곱셈이다
(A가 n자리, B가 m자리 수라면 총 가능한 조합은 n*m개)
생각
두 수의 모든 자릿수들(0~9) digit을 카운트해서
a의 digit 1~9까지 i, 각 자릿수 a[i]
b의 digit 1~9까지 j, 각 자릿수 b[j]
최종 합은 sum = i * j * a[i] * a[j]
*9999999999999999.. x 9999999999999999999999.. 라도 롱롱int를 안넘는지 모르겠네
만자릿수 이하의 두 자연수 A, B의
모든 각 자릿수들을 곱해서 더한 합이 이상한 곱셈이다
(A가 n자리, B가 m자리 수라면 총 가능한 조합은 n*m개)
생각
두 수의 모든 자릿수들(0~9) digit을 카운트해서
a의 digit 1~9까지 i, 각 자릿수 a[i]
b의 digit 1~9까지 j, 각 자릿수 b[j]
최종 합은 sum = i * j * a[i] * a[j]
#include <stdio.h> typedef long long llint; int main() { int a[10] = { 0, }; int b[10] = { 0, }; char c; while ((c = getchar()) != ' ') a[c - 48] += 1; while ((c = getchar()) != EOF) b[c - 48] += 1; llint sum = 0; for (int i = 1; i < 10; ++i) for (int j = 1; j < 10; ++j) { llint tmp = i * j; tmp *= a[i]; tmp *= b[j]; sum += tmp; } printf("%lld", sum); }
*9999999999999999.. x 9999999999999999999999.. 라도 롱롱int를 안넘는지 모르겠네