C++ ¶
느낀점 ¶
가게보고 집에왔는데 또 가게보러 가야한다..ㅠ.ㅜ
후딱 작성하고 가는 소스~
아영이가 주석을 부탁해서 달아놓았다.^^
주석을 다니까 조금 너저분해서 두개다 올렸다.^^
후딱 작성하고 가는 소스~
아영이가 주석을 부탁해서 달아놓았다.^^
주석을 다니까 조금 너저분해서 두개다 올렸다.^^
//출력문자열 센스있다...누가 생각한거지?ㅎ
그런데 말야.ㅎㅎㅎ
나 이거 만들고나서 알아챘는데, 귀찮아서 안고쳤더니.. 아무도 없어~!!
혹시 13월에 태어나거나 50일쯤 태어나거나 뒷자리가 7쯤으로 시작하시는분??ㅎㅎㅎ
빨리 다들 고치라구..ㅎㅎㅎ
아 그리고 지금 고친소스에도 문제점이 있다우..ㅎㅎㅎ
뭐게~ 알아맞춰봐..ㅎㅎ(알지만 귀차니즘때문에 안고치고 퀴즈로 내버리는 쎈쑤!ㅎㅎ)
나 이거 만들고나서 알아챘는데, 귀찮아서 안고쳤더니.. 아무도 없어~!!
혹시 13월에 태어나거나 50일쯤 태어나거나 뒷자리가 7쯤으로 시작하시는분??ㅎㅎㅎ
빨리 다들 고치라구..ㅎㅎㅎ
아 그리고 지금 고친소스에도 문제점이 있다우..ㅎㅎㅎ
뭐게~ 알아맞춰봐..ㅎㅎ(알지만 귀차니즘때문에 안고치고 퀴즈로 내버리는 쎈쑤!ㅎㅎ)
소스 ¶
~cpp
#include <iostream>
#include <conio.h>
using namespace std;
const int BACK_SPACE=8;
const int CHAR_TO_NUMBER=48;
void main()
{
cout << "주민등록번호를 '-'없이 입력해주세요>>";
int cursur=0;
int input_number[13];
while (cursur<13)
{
char number;
number=getche();
if (47<number && number<58)
{
number-=CHAR_TO_NUMBER;
if (12==cursur)
{
int sum=0;
for (register int i=0; i<12; ++i)
sum+=input_number[i];
if ((11-sum%11)%10==number)
cout << "\n대한민국 국민이네요~ ^^ 안녕하세요!\n";
else
cout << "\n혹시 간첩???? -_-;;\n";
}
else input_number[cursur]=number*(cursur%8+2);
++cursur;
}else if (BACK_SPACE==number)
{
cout << " \b";
--cursur;
}
}
}
수정했어요.^^ ¶
~cpp
#include <iostream>
#include <conio.h>
using namespace std;
const int BACK_SPACE=8;
const int CHAR_TO_NUMBER=48;
void main()
{
cout << "주민등록번호를 '-'없이 입력해주세요>>";
int cursur=0;
int put_num[13];
while (cursur<13)
{
char number;
number=getche();
if (47<number && number<58)
{
number-=CHAR_TO_NUMBER;
if (12==cursur)
{
int sum=0;
for (register int i=0; i<12; ++i)
sum+=put_num[i]*(i%8+2);;
if ((11-sum%11)%10==number && put_num[2]*10+put_num[3]<13 && put_num[4]*10+put_num[5]<32 && put_num[6]<3)
cout << "\n대한민국 국민이네요~ ^^ 안녕하세요!\n";
else
cout << "\n혹시 간첩???? -_-;;\n";
}
else put_num[cursur]=number;
++cursur;
}else if (BACK_SPACE==number)
{
cout << " \b";
--cursur;
}
}
}
주석버전 ¶
~cpp
#include <iostream>
#include <conio.h>
using namespace std;
const int BACK_SPACE=8;
const int CHAR_TO_NUMBER=48;
void main()
{
cout << "주민등록번호를 '-'없이 입력해주세요>>"; //안내문을 출력한다.
int cursur=0; //현재 커서의 위치를 저장한다.
int input_number[13];
while (cursur<13) //13개의 키를 입력받는다.
{
char number;
number=getche();
if (47<number && number<58) //입력받은 값이 숫자인지 확인한다.
{
number-=CHAR_TO_NUMBER;
if (12==cursur)//마지막 값인지를 확인한다.
{
int sum=0;
for (register int i=0; i<12; ++i)
sum+=input_number[i]; //숫자를 다 더한다.
if ((11-sum%11)%10==number) //올바른 주민번호인지를 확인한다.
cout << "\n대한민국 국민이네요~ ^^ 안녕하세요!\n";
else
cout << "\n혹시 간첩???? -_-;;\n";
}
else input_number[cursur]=number*(cursur%8+2); //알맞은 값을 곱한 숫자를 저장한다.
++cursur; //기억된 커서의 위치를 오른쪽으로 한칸 옮긴다.
}else if (BACK_SPACE==number) //입력받은 값이 백스페이스인지 확인한다.
{
cout << " \b"; //이전 문자열을 삭제한다.
--cursur; //기억된 커서의 위치를 왼쪽으로 한칸 옮긴다.
}
}
}
Erlang ¶
느낀점 ¶
2007년 대예언. ROR을 한다는 것보다 Erlang을 한다는 것이 더 섹시하게 보일 것이다. (타겟이 상당히 다르긴 하지만) -- 김창준 선배님
나 섹시해지는건가 -_ -ㅎ
나 섹시해지는건가 -_ -ㅎ
Erlang에 조금 더 익숙해 졌다 -_ -ㅎ
코드 ¶
* pr_6.erl
-module(pr_6). -export([checkNum/1]). mulAndSum([], []) -> 0; mulAndSum([FirstOne|RemainOne], [FirstAnother|RemainAnother]) -> FirstOne * FirstAnother + mulAndSum(RemainOne, RemainAnother). sumList([], []) -> []; sumList([FirstOne|RemainOne], [FirstAnother|RemainAnother]) -> [FirstOne + FirstAnother] ++ sumList(RemainOne, RemainAnother). checkNumSub(List) -> 11 - (mulAndSum(List, [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 0]) rem 11) == lists:last(List). checkNum(List) -> checkNumSub(sumList(List, lists:duplicate(13, -48))).
* shell
62> c(pr_6).
{ok,pr_6}
65> c(pr_6).
{ok,pr_6}
66> pr_6:checkNum("2222222222222").
false
67> pr_6:checkNum("2222222222223").
false
68> pr_6:checkNum("2222222222224").
false
69> pr_6:checkNum("2222222222225").
true










