5598번 - 카이사르 암호
1번 답
#include <stdio.h>
#include <string.h>
int main (void)
{
char s[1001];
scanf("%s", s);
int len = strlen(s);
for(int i = 0; i < len; i++)
s[i] -= 3;
if (s[i] > 'C') {
s[i] += 26;
}
printf("%s", s);
2번 답
else
s[i] += 3;
이렇게 두가지를 제출했습니다. 근데 밑에와 뭐가 다른지 모르겠습니다.
답은 두가지를 제출했는데
저안에서 제가 모르는 반례가 있는걸까요?
A부터 Z까지 있는 문자열을 입력으로 넣어 실행시켜보면 됩니다.
결과는 다음과 같습니다.
아하 ㅎㅎ 감사합니다.! 그런 반례가 있었군요.!
댓글을 작성하려면 로그인해야 합니다.
junhongwoo 5년 전
1번 답
#include <stdio.h>
#include <string.h>
int main (void)
{
char s[1001];
scanf("%s", s);
int len = strlen(s);
for(int i = 0; i < len; i++)
{
s[i] -= 3;
if (s[i] > 'C') {
s[i] += 26;
}
}
printf("%s", s);
}
2번 답
int main (void)
{
char s[1001];
scanf("%s", s);
int len = strlen(s);
for(int i = 0; i < len; i++)
{
if (s[i] > 'C') {
s[i] -= 3;
}
else
{
s[i] += 3;
}
}
printf("%s", s);
}
이렇게 두가지를 제출했습니다. 근데 밑에와 뭐가 다른지 모르겠습니다.
답은 두가지를 제출했는데
저안에서 제가 모르는 반례가 있는걸까요?