[BOJ_step_04]while문

1 분 소요

while문

간단한 반복문 문제

A+B - 5(10952)

#include<cstdio>
int main() {
	int a, b;
	scanf("%d%d", &a, &b);
	while (a > 0 && b > 0) {
		printf("%d\n", a + b);
		scanf("%d%d", &a, &b);
	}
	return 0;
}

A+B - 4(10951)

이 문제는 개행(\n)이 입력되면 반복문을 종료하는 문제이다. 항상 이런 문제를 보면 인터넷에서 찾아보곤 했는데… 생각보다 잘 안외워졌었다. 그런데 진짜 간단한 방법이 있었다. 그냥 입력되는 파일의 마지막이라면 종료하라는 뜻인 EOF(end of file)을 입력되는 값과 비교를 하면 되는 것이었다….. 꼭 기억하자

혹시몰라 c++과 c언어 모두 실행해봤는데 확실히 cin, cout으로 문제를 푸는 것이 더 느리고 메모리도 많이 차지하였다.

#include<cstdio>

int main() {
	int a, b;
	while (scanf("%d %d", &a, &b) != EOF) {
		printf("%d\n", a + b);
	}
	return 0;
}

#include<iostream>
using namespace std;
int main() {
	int a, b;
	while (cin >> a >> b) {
		cout << a + b << endl;
	}
	return 0;
}

#include<iostream>
#define endl '\n'
using namespace std;
int main() {
	cin.tie(NULL);
	ios::sync_with_stdio(false);
	int a, b;
	while (cin >> a >> b) {
		cout << a + b << endl;
	}
	return 0;
}

더하기 사이클(1110)

#include<cstdio>
int main() {
	int a, b, c, d = 0;
	scanf("%d", &a);
	b = a;
	while (1) {
		c = b / 10 + b % 10;
		b = (b % 10) * 10 + c % 10;
		d++;
		if (a == b)break;
	}
	printf("%d", d);
	return 0;
}

댓글남기기