문제
컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다.
예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다.
입력
첫째 줄에 고유번호의 처음 5자리의 숫자들이 빈칸을 사이에 두고 하나씩 주어진다.
출력
첫째 줄에 검증수를 출력한다.
예제 입력 1
0 4 2 5 6
예제 출력 1
1
#문제 풀이 방법
구현만 잘하자!
1. 5자리 숫자들을 각각 입력받아서
2. 각각의 숫자들을 제곱해서 더해주고
3. 10으로 나눈 나머지를 구하면 끝!
#C
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[5];
int sum=0;
for(int i=0;i<5;i++)
{
scanf("%d",&a[i]);
sum+=a[i]*a[i];
}
printf("%d",sum%10);
return 0;
}
위의 풀이 방법은
1.배열을 선언하고 각각의 배열에다가 숫자를 저장
2. 그 숫자를 제곱해서 sum에다가 더해주기
3. 10으로 나눈 나머지 출력
인데
다시 보니 배열을 선언하기 보다는
하나의 변수에 계속 숫자를 입력받고
제곱해서 sum에 더해주는 것이 살짝 더 편해보이기도 한다.
#include <stdio.h>
int main(){
int a;
int sum = 0;
for(int i=0; i<5; i++){
scanf("%d",&a);
sum += a*a;
}
printf("%d",sum%10);
return 0;
}
#C++
#include <iostream>
using namespace std;
int main(){
int a;
int sum = 0;
for(int i=0; i<5; i++){
cin >> a;
sum += a*a;
}
cout << sum % 10 << endl;
return 0;
}
#Python
파이썬도
list를 선언해서 풀 수도 있고,
각각의 변수에 저장해서 풀 수도 있을 것이다.
a = list(map(int,input().split()))
s=0
for i in range(len(a)):
s+=pow(a[i],2)
print(s%10)
a,b,c,d,e = map(int, input().split())
print((pow(a,2)+pow(b,2)+pow(c,2)+pow(d,2)+pow(e,2))%10) #pow는 제곱!
반응형
'PS > 백준' 카테고리의 다른 글
[백준/Baekjoon]<2739번> 구구단 [C/C++/Python][Class 1] (0) | 2022.07.09 |
---|---|
[백준/Baekjoon]<2557번> Hello World [C/C++/Python][Class 1] (0) | 2022.07.08 |
[백준/Baekjoon]<2438번> 별 찍기 - 1 [C/C++/Python][Class 1] (0) | 2022.07.07 |
[백준/Baekjoon]<1330번> 두 수 비교하기 [C/C++/Python][Class 1] (0) | 2022.07.06 |
[백준/Baekjoon]<1008번> A/B [C/C++/Python][Class 1] (0) | 2022.07.05 |