개발노트(150)
-
C언어 ROT13 문자암호화 알고리즘 만들기
ROT13이라는 문자암호화 알고리즘을 만드려면우선 ROT13이 뭔지 알아야겠죠? ROT13(Rotate by 13)은 단순한 카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다. 흔히 ROT-13 혹은 rot13이라고도 쓴다. 예를 들어서 'I LOVE YOU'를 ROT13으로 암호화하면 'V YBIR LBH'가 된다. 이 방법은 유즈넷을 비롯한 온라인 게시판에서 퍼즐의 정답이나 스포일러 등과 같이 미리 보기를 원치 않는 내용을 암호화하는 데 자주 사용된다. https://ko.wikipedia.org/wiki/ROT13 그림을 보니까 쉽게 이해가 되죠? 입력한 알파벳에서 a부터 m까지는 13을 더하고, n부터 z까지는 13을 빼면 됩니다. 문자입력은 getchar를 사용해서 한글자씩 입력받..
2018.09.27 -
C언어 약수, 소수, 제곱수, 완전수 구하기
우선 소수와 제곱수 그리고 완전수가 무엇인지 알아보자 약수는 어떤 수를 나누어 떨어지게 하는 수이다. 식으로 나타내면 n%i = 0 코드로는 123456if ((n%i) == 0) { printf("%d ", i); count++; per += i; }cs i가 계속 늘어나며 n을 나누고 0으로 나누어 떨어지면 출력시킨다.변수 count가 나온 이유는 소수 때문이다.변수 per가 나온 이유는 완전수 때문이다. 소수는 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수이다. 즉 소수는 2개의 수만 존재한다. 따라서 코드는 다음과 같이 나타낸다. 1234if (count == 2) { printf("(소수)"); }cs 제곱수는 어떤 수의 제곱이 되는 수이다.1, 4, 9,16 ..... 약수를 구할..
2018.09.22 -
C언어 while, case문을 이용한 메뉴선택
while문은 메뉴를 무한루프로 나타내기위해 사용하고case문은 각각의 메뉴를 선택하기 위해서 사용합니다. 0을 입력하면 종료가 되도록 case 0: 안에 return 0;을 넣었습니다.1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677#include int main(void) { while (1) { printf("-------------------------------------------- \n"); printf("0. 0을 입력하면 종료합니다. \n"); printf("1. 대소문자 확인 후..
2018.09.16 -
C언어 2의 거듭제곱 구하기
1234567printf("2 의 거듭제곱 구하기 \n"); printf("제곱할 수를 입력하세요. \n"); scanf("%d", &zgop); printf("2의 %d제곱은 %d입니다.. \n",zgop, 1 5; -> green 변수의 값을 오른쪽으로 5비트 이동시킨다. ex>green : 0000001000100000green >> 5 : 0000000000010001 반대로
2018.09.16 -
C언어 팩토리얼 구하기
팩토리얼을 간단하게 구하려면 함수가 필요합니다. int main(void) 위에 함수를 만들어줍시다. 1234567891011121314 int Factorial(int n) { if (n == 0) return 1; else return n * Factorial(n - 1); }cs n이 0이면 빠져나가고그렇지 않으면 n x n-1을 하는 함수입니다.참고로 팩토리얼은 5! (5팩토리얼)이라고 했을 때5*4*3*2*1 이렇게 계산되는게 팩토리얼입니다. 1234567printf("N 팩토리얼 구하기(N!) \n"); printf("숫자를 입력하세요. \n"); scanf("%d", &Hz); printf("%d 의 팩토리얼(%d!)은 %d 입니다.\n", Hz, Hz, Factorial(Hz));cs이런식..
2018.09.16 -
C언어 짝수와 홀수 구분하기
짝수와 홀수를 구분하는 코드scanf로 수를 입력받고2로 나눠서 떨어지면 짝수 그렇지 않으면 홀수 12345678910111213141516171819printf("숫자를 입력하세요 \n."); scanf("%d", &Hz); if (Hz % 2 == 0) { printf("짝수입니다.\n "); } else { printf("홀수입니다.\n "); }cs
2018.09.16