알고리즘 문제 입 출력 총화
이번 주 에 풀 린 알고리즘 문 제 는 공통 적 인 특징 이 있 습 니 다. 바로 여러 그룹의 입력 입 니 다. 그래서 먼저 여러 그룹의 입 출력 방식 을 정리 하 겠 습 니 다.
C 언어 다 중 그룹 입력
while(scanf("%d %d", &a, &b) != EOF)
{
}
가장 간단 한 예 를 들다.
이 문 제 는 언제 입력 이 끝 날 지 명확 하 게 밝 히 지 않 았 습 니 다. 정확 한 표기 법 은 다음 과 같 습 니 다.
#include
int main(void)
{
int a, b;
while(scanf("%d %d", &a, &b) != EOF)
{
printf("%d
", a + b);
}
return 0;
}
int n, a, b;
scanf("%d", &n);
while (n--)
{
.
}
return 0;
}
또는 for 순환 을 사용 하여 배열 로 데 이 터 를 저장 할 수 있 습 니 다.
while(scanf("%d", &n) != EOF)
{
for(int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
문제 풀이 에서 만난 예 를 들 어 보 자.
#include
int main(void)
{
int n, a[100], ret;
while(scanf("%d",&n)!= EOF)
{
ret = 1;
for(int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for(int i = 0; i < n; i++)
{
if(a[i] % 2 == 1)
{
ret = ret * a[i];
}
}
printf("%d
", ret);
}
return 0;
}
while(scanf("%d",&n),n!=0) {
}
예 를 들 어 이 제목 은
#include
int Is_prime(int m)
{
int nav;
if(m < 0)
{
nav = 0;
}
if(m == 2)
{
nav = 1;
}
else
{
for(int i = 2; i < m; i++)
{
if(m % i == 0)
{
nav = 0;
break;
}
else
{
nav = 1;
}
}
}
return nav;
}
int main(void)
{
int x, y, flag;
while(scanf("%d %d", &x, &y), x != 0 || y != 0)
{
int count = 0;
for(int i = x; i <= y; i++)
{
int sum = i * i + i + 41;
int ret = Is_prime(sum);
if(ret == 1)
{
count++;
}
}
if(count == y - x + 1)
{
printf("OK
");
}
else
{
printf("Sorry
");
}
}
return 0;
}
C 언어 다 중 그룹 출력
이번 주 몇 문제 에서 흔히 볼 수 있 는 것 은 출력 사이 에 빈 칸 이 있 는 문제 이다.
여기 서 먼저 두 가지 상황 을 정리한다.
다음은 두 가지 방법의 사용 을 볼 수 있다. 1.
#include
#include
int main(void)
{
int m, n;
while(scanf("%d %d", &m, &n) != EOF)
{
int count = 0;
for(int i = m; i <= n; i++)
{
int a = i % 10;
int b = i / 10 % 10;
int c = i / 100;
if(pow(a, 3) + pow(b, 3) + pow(c, 3) == i)
{
count++;
if(count == 1)
{
printf("%d",i);
}
else
{
printf(" %d",i);
}
}
}
if(count != 0)
{
printf("
");
}
else
{
printf("no
");
}
}
return 0;
}
#include
#include
void reset(char* a, char* b)
{
char t;
t = *b;
*b = *a;
*a = t;
}
int main(void)
{
char a[3];
while(scanf("%s", &a) != EOF)
{
getchar();
if(a[0] > a[1])
{
reset(&a[0], &a[1]);
}
if(a[0] > a[2])
{
reset(&a[0], &a[2]);
}
if(a[1] > a[2])
{
reset(&a[1], &a[2]);
}
for (int i = 0;i < 3;i++)
{
if(i <= 1)
{
printf("%c ",a[i]);
}
else
{
printf("%c",a[i]);
}
}
printf("
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
물체 검출의 평가 지표 IoU의 계산 방법Yolo나 SSD 등 물체 검출에서 평가 지표로 사용되는 IoU에 대해 조사했으므로 정리했습니다. IoU (Intersection over Union)는 두 영역이 얼마나 겹치는지를 나타내는 지표입니다. 두 영역의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.